2013-01-10 74 views
0

我知道,網上有很多例子,但是找到真正的例子對於初學者來說都很困難。所以我想用公共方法創建jQuery插件。示例代碼:在插件中調用jQuery插件公共函數

(function($) { 
    $.fn.peel = function(options) { 
     var defaults = { 
     }; 

     var settings = $.extend({},defaults, options); 

     this.public = function() { 
      alert("public"); 
     }; 

     var private = function() { 
      alert("private"); 
     } 

     return this.each(function() { 
      //this.public(); 
      private(); 
     }); 
    }; 
})(jQuery); 

因爲我發現,這是爲了讓公共職能的方式,這可以被稱爲是這樣的:

var peel = $('img').peel(); 
peel.public(); 

到目前爲止,它按預期工作 - 大衆()的調用。但是如果我想在我的插件中調用該函數呢?我在this.each()中註釋掉了,因爲它不起作用。我怎麼能做到這一點?

+0

嘗試例子表明在jQuery的文檔http://docs.jquery.com/Plugins/Authoring – charlietfl

回答

1

在插件中創建公共訪問方法的一種方法是使用jQuery UI widget factory。這是jQuery UI用於所有支持的UI小部件的框架。一個簡單的例子是這樣的:

(function($) { 
    $.widget("something.mywidget", { 

    // Set up the widget 
    _create: function() { 

    }, 

    publicFunction: function(){ 
     //... 
    } 
    }); 
}(jQuery)); 

var $w = $('#someelement').mywidget(); 

$w.mywidget('publicFunction'); 
+0

假設OP使用jQueryUI的,'最好way'可能更好地表述爲一個' way' – charlietfl