我正在尝试编写自己的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等。
答案 0 :(得分: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!"); });