Рассмотрим следующий JQuery плагин код:JQuery плагин не работает для всех элементов, которые применяются при
(function($){
$.fn.MyPluginMethod= function() {
$(this).after('<span>Hello</span>');
};
})(jQuery);
если мы называем эту функцию следующим образом: $('a').MyPluginMethod();
для каждого<a>
тега, который существует, он будет добавить a <span>
тег после него.
Если мы изменим это так:
(function($){
$.fn.MyPluginMethod= function() {
title= $(this).attr('title');
alert(title);
};
})(jQuery);
Это не будет предупреждения в заголовке для каждого<a>
тега, который существует только для первого совпадения.
Почему это поведение? Thanks
, но во втором примере, я называем его с $ ('а') селектор, не следует этого один цикл через каждый из согласованных элементов тоже, и предупреждение для каждого из них? – user2653125
Нет, потому что, как я уже говорил, вы создаете 1 экземпляр плагина. –
@ user2653125 нет, потому что метод .attr() возвращает только первый сопоставленный элемент –