jQuery-公开事件
我正在尝试编写自己的jQuery插件。我的目标是将其附加到表单以覆盖提交。我有一些基本知识,但我的问题在于“暴露”事件 以下是我想做的:jQuery-公开事件,jquery,events,jquery-plugins,jquery-events,Jquery,Events,Jquery Plugins,Jquery Events,我正在尝试编写自己的jQuery插件。我的目标是将其附加到表单以覆盖提交。我有一些基本知识,但我的问题在于“暴露”事件 以下是我想做的: $('#myobject').myplugin({ setting1: 'somevalue', beforesubmit: function(){ ... } }); 这是我到目前为止所拥有的 $.fn.myplugin= function (options) { var settings = { settin
$('#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
}
});
};
这个??关键在于我如何启动事件。我还想要其他事件,如OneError、aftersubmit等。您可以调用该方法,替换为:
//fire beforesubmit
为此:
if(settings.beforesubmit) settings.beforeSubmit();
也可以这样做,添加所需的任何回调参数,例如:
if(settings.beforesubmit) settings.beforeSubmit.call(this, someVariable);
$(this).trigger("beforeSubmit");
$(".someElement").bind("beforeSubmit", function() { alert("submit!"); });
另一种方法(不适用于某些情况)是触发您自己的事件,并让jQuery绑定模型完成工作,例如:
if(settings.beforesubmit) settings.beforeSubmit.call(this, someVariable);
$(this).trigger("beforeSubmit");
$(".someElement").bind("beforeSubmit", function() { alert("submit!"); });
然后在其他位置绑定到事件,例如:
if(settings.beforesubmit) settings.beforeSubmit.call(this, someVariable);
$(this).trigger("beforeSubmit");
$(".someElement").bind("beforeSubmit", function() { alert("submit!"); });