1
我一直在使用jQuery幾個月(我仍然是Mootools的門徒),現在我試圖在jQuery中創建我的第一個插件。如何使jQuery插件中的設置(或選項)適用於所有方法?
事情是,我想在我的插件中有一些方法,我希望這些方法能夠訪問插件的所有「屬性」。
例如:
(function($) {
$.fn.test= function(method) {
var settings;
init: function() {
var _defaults = {
option1: 'value1',
option2: 'value2',
option3: 'value3',
url: 'default.php'
};
settings = $.extend({}, _defaults, method);
},
load: function(){
$.ajax({
cache : false,
type : "GET",
url : settings.url,
dataType: "json",
success : function(response){
console.log(response);
},
error : function(response) {
alert("Error loading data.");
}
});
}
}
}(jQuery));
現在的插件本身的召喚: //初始化 $( '#BOX1')測試({ 網址:。 '另一-url.php' });
// Call the load method
$('#element').test('load');
的問題是,當我打電話,而不是「另一個-url.php」「負荷」的settings.url是等於「如default.php」。
是否可以像在OOP中那樣處理這個問題,我的意思是將'settings'設置爲「class」的一個屬性,然後對該屬性的所有更改都是持久的?
我想在僞代碼,實現什麼:
Class Test{
// Specify default settings
private settings = // some default values;
// Constructor
public Test(specificSettings){
//Code to merge/update specificSettings with settings
}
public load(){
// If I access this.settings in here, I will get the
// updated settings and not the default one
}
}
這也將允許根據需要我有儘可能多的「實例」,每個人都有自己設置的值。
感謝提前:)
你嘗試過什麼,我人在回答? –
你好@KevalBhatt!它工作完美。非常感謝你! –
你知道如何接受回答http://meta.stackexchange.com/a/5235 –