Привязка событий проверки JQuery

0

Мне нужно проверить, не связаны ли какие-либо события с элементом.

Например

$(".animate").click(function(){
    alert('Here comes action');
}); 

а также

$(".someOtherSelector").click(function(){
    alert('some other action');
});

HTML

<a class="animate"></a>
<a class="someOtherSelector animate"></a>

Во второй функции мне нужно проверить, существует ли уже связанное событие с этим элементом. Если это так, он не должен выполнять alert('some other action'); ,

Я использую jQuery версии 1.10.1.

Показать ещё 1 комментарий
Теги:
binding
events

2 ответа

2

вы можете получить события $(".someOtherSelector").data('events'), а затем проверить, присутствует ли требуемое событие или нет.

​var events = $._data( $(".someOtherSelector")[0], "events" );
if(events.indexOf("click") == -1) {
  $(".someOtherSelector").click(function(){
    alert('some other action');
  });
}
  • 1
    Это было удалено задолго до 1.10.
  • 0
    Ой, извините, я пропустил using Jquery v. 1.10.1
Показать ещё 2 комментария
1

Начиная с jQuery 1.8, event data о event data больше недоступны для данных. Прочтите эту запись в блоге jQuery. Теперь вы должны использовать это:

jQuery._data(element, "events")

Код

$('.someOtherSelector').each(function(){
    console.log($._data(this, "events"));
});

скрипка

  • 1
    Uncaught TypeError: Object [object Object] не имеет метода _data

Ещё вопросы

Сообщество Overcoder
Наверх
Меню