簡體   English   中英

jQuery-方法鏈的插件和名稱空間問題

[英]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() 無效 任何鏈接的方法都將失敗。

這是我制作的一個簡單的JSBin來顯示問題

為什么?

您應該返回$(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM