2010-11-19 37 views
1

我想寫我自己的jquery插件。我的目標是將其附加到表單以覆蓋提交。我有基礎知識,但我的問題在於「揭露」事件。jquery - 揭露事件

這是我想做的事:

$('#myobject').myplugin({ 

    setting1: 'somevalue', 
    beforesubmit: function(){ ... } 

}); 

這裏是我到目前爲止

$.fn.myplugin= function (options) { 

    var settings = { 
     setting1: '', 
     beforesubmit: function() { return true; } 
    }; 

    return this.each(function() { 
     // If options exist, lets merge them 
     // with our default settings 
     if (options) { 
      $.extend(settings, options); 
     } 

     //fire beforesubmit 

     $(this).live("submit", function(){ 

      //do stuff 
     } 

    }); 

}; 

的?在於我如何解決事件。我想有其他事件太像的onerror,aftersubmit等

回答

3

您可以直接調用該方法,更換這樣的:

//fire beforesubmit 

有了這個:

if(settings.beforesubmit) settings.beforeSubmit(); 

你也可以做這一點,添加任何你想要的回調參數,例如:

if(settings.beforesubmit) settings.beforeSubmit.call(this, someVariable); 

另一種(不適合某些情況下)是觸發自己的事件,讓jQuery的結合模型做的工作,例如:

$(this).trigger("beforeSubmit"); 

然後在其他地方,綁定到該事件,例如:

$(".someElement").bind("beforeSubmit", function() { alert("submit!"); });