我正在尝试创建一个我可以同时调用的简单插件:$.myPlugin()
和$('something').myPlugin()
下面是代码:
(function($) {
$.fn.myPlugin = function(item) {
return this;
};
$.myPlugin = function(item) {
return $.fn.myPlugin(item);
};
}(jQuery));
当上面提到的任何方式调用时,这都有效。
但是,调用$.myPlugin().hide()
不有效。任何链式方法都失败了。
Heres a simple JSBin I made showing the issue
为什么?
答案 0 :(得分:1)
您应该返回$(this)
,而不是jquery this
:
(function($) {
$.fn.myMethod = function() {
this.append('<p>MY METHOD</p>');
return $(this);
};
$.myMethod = function() {
return $.fn.myMethod();
};
}(jQuery));
$(function () {
// Moment of truth
$('.output').myMethod().hide('slow');
$('h1').click(function(){
$('.output').myMethod().hide();
});
});