イベントをトリガーする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");
}
bar がトリガーされないようにするために foo がキャンセルされたかどうかを確認するにはどうすればよいですか?
jQuery UI はこれと同様のことを行いますが、試してみるとうまくいきませんでした:
if (this._trigger("search", event) === false) {
return;
}
私はこれに似たものを試しました:
if( this.trigger("foo.myplugin") === false ) {
return;
}
this.trigger("bar.myplugin");
しかし、バーはまだトリガーされていました。
次のようにプラグインを初期化しています。
$("#asdf").myplugin({
foo: function(event) {
// cancel the event
event.preventDefault();
},
bar: function(event) {
console.log("should not be triggered");
}
});