简单地:
(function($){
$.fn.plugin = function()
{
// results in error
// when called like
// $.plugin();
}
})(jQuery);
错误是(从Chrome控制台复制):
Uncaught TypeError: Object function ( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
} has no method 'plugin'
为了让我的插件在没有元素选择的情况下工作,我必须遵循哪些规则?
答案 0 :(得分:6)
只需将功能直接分配给$.plugin
:
(function($){
$.plugin = function()
{
// ...
}
})(jQuery);
当然this
不再引用所选元素,而是引用jQuery
本身。
答案 1 :(得分:0)
问题是你已经宣布了一个插件,作为对象$ .fn的一种方法,并尝试以对象jQuery的方法获取对该插件的访问
答案 2 :(得分:0)
保持jQuery的约定,并且更喜欢以这种方式使用它:
$(this).plugin()