0

我尝试创建 jquery 插件,它只反映特定类的结果,而不是所有相同的类

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

那么如何创建仅反映特定类的插件。

4

1 回答 1

2

添加一个类来告诉你的插件你已经在这样的事情之前做了这个标签

(function( $ ){
  $.fn.tooltip = function( options ) {    
    var settings = $.extend( {
      'content'         : 'top'      
    }, options);    
    return this.not('.tooltiped').each(function() {       
       $(this).html(settings.content);
    }).addClass('tooltiped');
  };
})( jQuery );

例子:

http://jsfiddle.net/k7m6x/

更新

Sheikh Heera建议的那样,如果您只更改元素的内容,那么这段代码就足够了:

  return this.not('.tooltiped').html(settings.content).addClass('tooltiped');
于 2013-09-24T04:49:34.083 回答