live
события добавлены в документ.Используйте
$(document).data('events').click
. Выше будет возвращен массив объектов, содержащий информацию о каждом связанном обработчике кликов.Каждый из этих объектов имеет свойство selector
, содержащее селектор, который использовался во время привязки с $(selector).live(.., ..)
.
. Любой из этих селекторов, который соответствует элементу с идентификатором foo, будет запущен, когда #foo
нажата.Обратите внимание, что селектор не должен быть точно #foo
, чтобы это произошло.Есть много других селекторов, которые можно использовать для нацеливания на элемент.Например, если #foo
было <p>
, то обработчик живого клика, такой как
$("p").live("click", function..)
, также будет нацелен на #foo
.
Вот один из подходов.Проходите по каждому объекту и смотрите, содержит ли какой-либо из элементов, соответствующих свойству selector
, #foo
.
var handlers = $(document).data('events').click;
// jQuery quirk: $.map callback takes arguments (obj, index) and
// $(..).map takes callback arguments as (index, obj)
var fooClickHandlers = $.map(handlers, function(handler) {
if($(handler.selector).is('#foo')) {
return handler;
}
return null;
});
// fooClickHandlers is a list of all handlers that will fire on #foo click