Каков наилучший способ выполнить jQuery .change () - PullRequest
8 голосов
/ 03 апреля 2012

У меня есть 2 отдельных скрипта, которые по сути делают то же самое.Я построил их с течением времени и обнаружил, что использую несколько разных способов для достижения одного и того же результата.

Я хочу стандартизировать и использовать метод передового опыта в обоих случаях.

Один способЯ тестирую событие изменения так:

$('input[name="status"]').change(function() {});

Другой способ тестирования события изменения таков:

$("#email").bind("change", function(e) {});

Какой способ лучше?В чем разница между 2?

Спасибо, что помогли мне понять это.

1 Ответ

16 голосов
/ 03 апреля 2012

До jQuery 1.7 change() был просто кратчайшим для bind("change").

Начиная с 1.7, однако, было введено on(), и оно является предпочтительным для bind(). Это означает, что change() является сокращением для on("change"), и фактически все вызовы bind() теперь будут вызывать on() внутри.

Короче говоря, они делают то же самое. Я считаю, что явное использование on() (или bind()) предпочтительнее, но до тех пор, пока вы будете последовательны во всей своей кодовой базе, я не вижу никаких реальных отличий.

Можно утверждать, что использование change() сверх on("change") "лучше", поскольку опечатка в слове "change" в первом случае выдает ошибку разбора ("undefined не является функцией"), но будет тихо провалиться с on() ... но, очевидно, ваши юнит-тесты поймают это, верно? ;).

...