число, которое запускает событие, связано с числом его привязок событий в Jquery? - PullRequest
1 голос
/ 19 марта 2012

Я часто получаю несколько привязок событий, запускаемых несколько раз в Jquery / Jquery Mobile, особенно при использовании нового Jquery on () по сравнению с Jquery live ();

Пример:

   $(document).on("pagebeforechange", function (e, data) {
      // stuff
      });

Мне интересно следующее:
Если у меня будет несколько связываний, как указано выше, будут ли они срабатывать по одному или столько раз, сколько я использую привязку.

Пример:
3 слушателя документа / pagebeforechange = каждый слушатель 1x
3 слушателя документа / pagebeforechange = каждый слушатель 3x

Спасибо за разъяснения!

1 Ответ

0 голосов
/ 19 марта 2012

Каждый вызов .bind(), .on(), .delegate() и т. Д. Создает новый уникальный обработчик событий и помещается в очередь.

Так что да, каждый вызов этих методов вызовет новыйобработчик.Не пренебрегайте этим.

Например,

<body>
    <div>
        <span>foo</span>
    </div>
</body>

$('span').on('click', function() {
    alert('span #1');
});

$('span').on('click', function() {
    alert('span #2');
});

Это предупредит span #1, а затем span #2, когда мы нажмем на промежуток.

...