Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.10.2013, 21:25
Новичок на форуме
Отправить личное сообщение для upvasil Посмотреть профиль Найти все сообщения от upvasil
 
Регистрация: 16.03.2013
Сообщений: 7

Отличить событие, вызванное пользователем, от программного.
Всем доброго времени суток!

Подскажите, пожалуйста, как можно отличить событие, вызванное пользователем, от программного.
Например, у нас есть два селекта - select1, select2.
При изменении первого селекта в его обработчике change вызывается событие change второго селекта:
$('#select1').change(function(){
     $('#select2').change();
})

Как это программное событие $('#select2').change(), отличить от того, что возникает при изменении второго селекта пользователем.
Суть задачи в том, что некоторый кусок кода нужно выполнять только если событие было вызвано пользователем. Таких селектов на форме много, желательно универсально решение для всех селектов.

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 21.10.2013, 22:20
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

upvasil,
1. Дополнить наличием события наведения мышью
2. Поместить элементы во фрейм с иного хоста, и там скриптовать по нужному событию, ибо туда залезть можно только пользователем или серверным скриптом.

Последний раз редактировалось Deff, 21.10.2013 в 22:22.
Ответить с цитированием
  #3 (permalink)  
Старый 22.10.2013, 11:47
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

Poznakomlus, я минусанул , потому что то что вы написали бред, как ваш код относиться к определинию типа собыия?
И правильный ответ уже дал Deff
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #4 (permalink)  
Старый 22.10.2013, 12:51
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

Poznakomlus, ну ну.
и так есть код
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>

    <div id='click'> 123</div>
    
    
    <script>


      var div = document.getElementById('click');
      
      
      div.onclick = function () {
      
       alert(1)
       
      };

      // а теперь вопрос как отличить клик пользователя от вызова click, если метод выполняеться в другом скрипте к которому нет доступа??? 
      
      div.click();
      

    </script>

  </body>
</html>
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #5 (permalink)  
Старый 22.10.2013, 13:28
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

Poznakomlus,
ладно согласен не прав, как всегда читаю вопрос отрывками)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #6 (permalink)  
Старый 22.10.2013, 18:45
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

В некоторых браузерах реализовано свойство isTrusted объекта-события. Оно равняется true если событие является доверенным, то есть сгенерировано браузером, а не js-кодом.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #7 (permalink)  
Старый 22.10.2013, 21:30
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

danik.js, если извращаться то может лучше так??)
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>

    <div id='click'> 123</div>
    
    
    <script>
      
     var cl =  HTMLElement.prototype.click;
      
      HTMLElement.prototype.click = function () {
      
        console.log('It programm click');
        
        cl.apply(this, arguments);
      
      }
     


      var div = document.getElementById('click');
      
      div.onclick = function () {
      
        // alert(1)
        
        console.log('clicked')
        
      };

      
      div.click();
      

    </script>

  </body>
</html>
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отследить событие смены локального времени пользователем? lekba Events/DOM/Window 7 06.08.2013 23:27
Возможно ли отловить событие на area от программного клика/наведения на мап-карте ? Deff Общие вопросы Javascript 26 12.02.2013 19:56