我创建了一个 jQuery 插件,它触发了一个事件:
$.fn.myplugin = function(options) {
this.on("foo.myplugin", options.foo);
this.on("bar.myplugin", options.bar);
};
我想检查用户是否取消了foo,并防止触发bar:
// trigger foo
this.trigger("foo.myplugin");
// how do I check if foo was canceled
if( !fooCanceled ) {
this.trigger("bar.myplugin");
}
如何检查foo是否已取消,以防止触发bar?
jQuery UI做了类似的事情,但我尝试时它没有成功:
if (this._trigger("search", event) === false) {
return;
}
我尝试过类似于这样的操作:
if( this.trigger("foo.myplugin") === false ) {
return;
}
this.trigger("bar.myplugin");
但是bar仍然被触发了。
我是这样初始化我的插件的:
$("#asdf").myplugin({
foo: function(event) {
// cancel the event
event.preventDefault();
},
bar: function(event) {
console.log("should not be triggered");
}
});
this._trigger('foo.myplugin') === false
吗? - Explosion Pills