Я пытаюсь создать jquery-плагин, который отражает результат только по классу perticular только не на всех одинаковых классах
Плагин jQuery
(function( $ ){
$.fn.tooltip = function( options ) {
var settings = $.extend( {
'content' : 'top'
}, options);
return this.each(function() {
$(this).html(settings.content);
});
};
})( jQuery );
вызывающий плагин
<body>
<div class="toolbar"></div>
<script type="text/javascript">
$('.toolbar').tooltip({
content:'this is first'
});
</script>
<div class="toolbar"></div>
<script type="text/javascript">
$('.toolbar').tooltip({
content:'this is second'
});
</script>
</body>
Я ожидал результата:
this is first
this is second
Но отображение результата:
this is second
this is second
Итак, как создать плагин, который отражает только конкретный класс.
Добавьте класс, чтобы сообщить вашему плагину, что вы уже сделали этот тег, прежде чем что-то подобное
(function( $ ){
$.fn.tooltip = function( options ) {
var settings = $.extend( {
'content' : 'top'
}, options);
return this.not('.tooltiped').each(function() {
$(this).html(settings.content);
}).addClass('tooltiped');
};
})( jQuery );
Пример:
ОБНОВИТЬ
как предложил Sheikh Heera
если вы только меняете содержимое элемента, то этого кода достаточно:
return this.not('.tooltiped').html(settings.content).addClass('tooltiped');
each
цикл работает только тогда, когда изначально доступен только один элемент.return this.not('.tooltiped').html(settings.content).addClass('tooltiped');