удаление событий из элементов .each против .unbind в jQuery ... какая разница? - PullRequest
1 голос
/ 01 октября 2011

В сценарии, который я пишу, я заметил, что в настоящее время работают два способа «отсоединить» событие от элемента.

$("elementName").each( function() { $(this).unbind('click'); });

И вот так ...

$("elementName").unbind('click'); });

Я знаю, .each проходит через элементы, но вторые сценарии, кажется, работают так же хорошо. Так чего мне не хватает, зачем использовать .each?

Спасибо всем!

Ответы [ 2 ]

2 голосов
/ 01 октября 2011

Нет смысла использовать .each в этом случае.Большинство функций jQuery предназначены для работы с группами совпадающих элементов, поэтому $("elementName").unbind('click') - лучший способ применить unbind к нескольким элементам одновременно;однако, если вам нравится печатать, вы можете использовать итератор .each и выполнять их по одному разу.

Как правило, вы будете использовать .each, если вы хотите сделать что-то другое для некоторых или всех совпадающих элементов.,Например:

$('a').each(function(i) { $(this).addClass('pancakes' + i) });

добавит разные классы для каждого <a> и будет подходящим использованием .each.Или unbind пример:

$('a').each(function() {
    var $this = $(this);
    if($this.data('where-is') == 'pancakes-house')
        $this.unbind('click');
    // Yes, there are other ways to do this, this is just an illustrative example.
});
0 голосов
/ 01 октября 2011

По сути то же самое.

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

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