jquery插件将$('#somediv')。foo更改为$ .foo

时间:2011-11-02 05:11:59

标签: jquery

我正在编写一个jquery插件并且它运行良好,但它需要一个外部>外部包装器#id(#somediv),即:

$('#somediv').foo({
     wrap : 'example',
     one  : 'red',
     two  : 'blue',
  });

HTML:

<div id="somediv">
 <<div id="example">
<!-- Do stuff -->
 </div>
</div>

对我来说,不需要外部&gt;外部包装器(#somediv),并且希望能够删除对它的需要,并且只需要一个实际上是wrap : 'example',选项的包装器并调用插件像这样的选项:

$.foo({
     wrap : 'example',
     one  : 'red',
     two  : 'blue',
  });

HTML:

 <div id="example">
<!-- Do stuff -->
 </div>

因为标题说明如何将更改$('#somediv').foo更改为$.foo

基本插件布局:

;(function($) {
    $.fn.foo = function(opts) {
        var defaults = {
         wrap : 'example',
         one  : 'red',
         two  : 'blue'
        };
        var opts = $.extend(defaults, opts);
        return this.each(function() {

//  Do stuff

        });
    };
})(jQuery);

像往常一样,所有的帮助都会受到赞赏并提前感谢。

1 个答案:

答案 0 :(得分:0)

而不是将其分配给jQuery.fn直接分配到jQuery

您也可以使用extend()之类的...

$.extend({
   foo: function() { ... }
});