/ / Трябва ли да използвам .on () или .click (), за да прикача манипулатор на събития? - jquery

Трябва ли да използвам .on () или .click (), за да прикачите манипулатор на събития? - jquery

Ако приемем, че просто искам да прикачам един елемент за управление на кликване към елемент, винаги съм го правил:

$("#mydiv").click(function() { ... });

С поглед към документите на JQuery изглежда, че .on() е "препоръчителният" начин за прикачване на манипулатори на събития и заменя .bind(), .delegate() и .live():

От JQuery 1.7, методът .on () осигурява всички необходими функции за прикачване на манипулатори на събития. За помощ при конвертиране от по-старите jQuery методите за събития, вижте .bind (), .delegate () и .live ().

И в документите за .click() казва:

Този метод е пряк път за .bind ("клик", манипулатор) в първите две варианти и .trigger ("клик") в третата.

Така че това предполага това .click() се използва .bind() който ще бъде отменен и заменен с .on(), нали? Или това е значението на това .click() ще остане наоколо, но в някакъв момент ще се превърне в пряк път за .on("click")?

По принцип, въпросът ми е това ... Когато пишете JQuery код днес, трябва да използвам:

Variant 1: $("#mydiv").click(function() { ... });

или:

Variant 2: $("#mydiv").on("click", function() { ... });

?

Отговори:

4 за отговор № 1

Лично бих използвал on() за всички свързвания на събития от jQuery 1.7+.

Това означава, че няма двусмисленост между елементите, които се добавят динамично, и тези, които са налице при зареждането на страницата.

Също така, както твърдите, click() (и други преки пътища за събития) on("event", function() { ... }); от JQuery, така че това спестява една стъпка в процеса - не че това прави забележима разлика, разбира се.

И накрая, on("click") чете по-добре по мое мнение.