[英]jQuery - Plugins and namespace issues with method chaining
我正在嘗試創建一個可以同時調用的簡單插件: $.myPlugin()
和$('something').myPlugin()
這是代碼:
(function($) {
$.fn.myPlugin = function(item) {
return this;
};
$.myPlugin = function(item) {
return $.fn.myPlugin(item);
};
}(jQuery));
當以上述任一方式調用時,此方法有效。
但是,調用$.myPlugin().hide()
無效 。 任何鏈接的方法都將失敗。
為什么?
您應該返回$(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();
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.