Можно ли определить, было ли вызвано событие щелчка jQuery фактическим щелчком или триггером? - PullRequest
1 голос
/ 08 сентября 2011

У меня есть некоторая функциональность, которая связана с событием щелчка:

$('.addButton').live('click', function(){  
 //stuff here...
});

Иногда функция вызывается фактическим нажатием кнопки, а иногда с использованием trigger().Есть ли способ определить, какой метод был использован?

Спасибо!

Ответы [ 4 ]

3 голосов
/ 08 сентября 2011

См. Это: http://api.jquery.com/category/events/event-object/

$('.addButton').live('click', function(e){ 
    if(e.which != undefined){
         //actual button click
    }
    else{
         //trigger
    }
});

См. Пример здесь: http://jsfiddle.net/expertCode/d5SW2/

2 голосов
/ 08 сентября 2011

Я полагаю, что вы можете передать другой аргумент .live, который содержит eventData

.live( eventType, eventData, handler )
// eventData A map of data that will be passed to the event handler.

Можно ли использовать это для указания индикатора того, как вызываемый абонент совершил вызов?

1 голос
/ 08 сентября 2011

Краткий ответ: Да.

$('.addButton').live('click', function(event){  
if(event.clientX === undefined)
  console.log("Invoked programatically")
});

Конечно, вы можете подражать этому, если хотите.Но его там нет по умолчанию.

0 голосов
/ 08 сентября 2011

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

...