2012-02-24 38 views
1

如何制作一个jQuery插件,可以在不使用元素选择器的情况下执行?jQuery插件无需元素工作

一样,通常是:
$('#myElementID').myPluginFunction(myVariables);
但是,相反:
$.myPluginFunction(myVariables);

提前感谢!

回答

5

其实你只需要使用$.extend()代替$.fn.extend(),读here更多

$.fn.extend({ 
    myMethod: function(){...} 
}); 
//jQuery("div").myMethod(); 

$.extend({ 
myMethod2: function(){...} 
}); 
//jQuery.myMethod(); 
3

你可以这样说:

$.myPluginFunction = function(vars) { 
    //... 
}; 
1

使用$.extend。这里有一个小例子:

$(function() { 
    return $.extend({ 
     addDebugBorder: function(selection, size) { 
     return selection.each(function() { 
      var color, randomColor; 
      randomColor = function() { 
      return Math.floor(Math.random() * 256); 
      }; 
      if (!size) size = '5px'; 
      color = 'rgb(' + randomColor() + ',' + randomColor() + ', ' + randomColor() + ')'; 
      return $(this).css('border', size + ' solid ' + color); 
     }); 
     } 
    }); 
    }); 

然后叫像

$.addDebugBorder($("table tr td"), '1px'); 

编辑 - 这个例子代码真的应该是一个正常的插件,我想我修改了它采取的选择而不是只是工作的div只是为什么它有点奇怪。

0

而不是将该插件分配给jQuery.fn对象,只需将其分配给根jQuery对象本身。

jQuery.myPluginFunction = function(myVariables) { 
    // plugin code 
}