/ / Чи повинен я використовувати .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") читає краще на мій погляд.