概念是有2個插件一個用於表單,另一個用於按鈕。我要綁定到jQuery插件,各種形式的我的網頁,將處理一些工作,讓說,這是我的插件使用DOM元素的ID訪問插件實例
$.fn.PluginForm = function (Options) {
var o = jQuery.extend({
SomeOption: 1
}, Options);
var Validate = function(){
if(o.SomeOption == 1) return true;
else return false;
};
$(this).on('submit', function(e) {
e.preventDefault();
//some code here
});
};
形式卻沒有在我的情況後,從另一個控制觸發按鈕。這是因爲我想要構建的應用程序的結構。按鈕插件是:
$.fn.PluginButton = function (Options) {
var o = jQuery.extend({
Actions: [],
FormID: ''
}, Options);
$(this).click(function(){
var Form = $('#' + o.FormID);
if(Form.length > 0 && Form.PluginForm.Validate()) {
Form.submit();
//do something
}
else{
//do something else
}
});
};
我想成功是調用表單元素上的驗證功能,但我並不想調用的PluginForm的另一個實例。類似$('#' + o.FormID).PluginForm.Validate()
所有這些都必須作爲插件,因爲在同一頁面上會有很多表單和很多按鈕。也會有很多按鈕可以在同一個表單上調用提交,但具有不同的選項。這就是爲什麼我要調用一次窗體的實例。此外,將被驗證的控件將作爲參數傳遞給PluginForm的選項。像這樣的$('#' + o.FormID).PluginForm({ Action: ‘Validate’ })
不是一個選項,因爲將失去PluginForm的初始參數。
工程就像一個魅力。我不喜歡這種結構,但這是我的問題;)。如果其他人閱讀這個內容,唯一要記住的是this.element = element; 返回DOM對象而不是JQuery對象 this.element = $(element); tnx – GGpok 2014-12-08 10:31:35