jQuery: $ (). click (fn) против $ (). bind ('click', fn); - PullRequest
114 голосов
/ 06 февраля 2009

При использовании jQuery для подключения обработчика событий, есть ли разница между использованием метода click

$().click(fn)

против использования метода связывания

$().bind('click',fn);

Кроме необязательного параметра данных bind.

Ответы [ 7 ]

137 голосов
/ 06 февраля 2009

Для чего стоит, из jQuery источника :

jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
    "mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
    "change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){

    // Handle event binding
    jQuery.fn[name] = function(fn){
        return fn ? this.bind(name, fn) : this.trigger(name);
    };
});

Так нет, разницы нет -

$().click(fn)

звонки

$().bind('click',fn)
96 голосов
/ 06 февраля 2009

+ 1 для ответа Мэтью, но я подумал, что должен упомянуть, что вы также можете связать более одного обработчика событий за один раз, используя bind

$('#myDiv').bind('mouseover focus', function() {
    $(this).addClass('focus')
});

, что намного чище, эквивалентно:

var myFunc = function() {
    $(this).addClass('focus');
};
$('#myDiv')
    .mouseover(myFunc)
    .focus(myFunc)
;
7 голосов
/ 06 февраля 2009

Существует одно отличие в том, что вы можете связать пользовательские события, используя вторую форму, которая у вас есть. В противном случае они кажутся синонимами. См .: Документация по jQuery

1 голос
/ 21 апреля 2012

Я считаю, что .click () более логичен, но я думаю, это то, как вы думаете о вещах.

$('#my_button').click(function() { alert('BOOM!'); });

Кажется, все так же просто, как и ты.

1 голос
/ 23 ноября 2009

Существует параметр [data] связывания, который будет происходить только во время привязки, один раз.

Вы также можете указать пользовательские события в качестве первого параметра связывания.

0 голосов
/ 09 сентября 2011

Я предпочитаю .bind () из-за его согласованности интерфейса с .live () . Это не только делает код более читабельным, но и облегчает изменение строки кода для использования одного метода вместо другого.

0 голосов
/ 10 февраля 2010

Если у вас есть Google Chrome, в его инструментах разработчика есть инструмент прослушивания событий, выберите элемент, за которым вы хотите следить за его событием.

Вы обнаружите, что попытки обоих способов приводят к одному и тому же результату, поэтому они эквивалентны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...