我不确定如何说出来,这就是我想要完成的事情:
$(document).on('click', '.my-element', function(e) {
var data = [{
'event': e,
'self': this
}];
// Trigger the override function first in case they need to stop prop
$(document).trigger('override:something',dataa);
// Would like to only trigger this default method if the event above is not set
$(document).trigger('something',data);
});
然后在另一个页面上,我有一些东西要抓住这个事件,如下:
$(document).on('override:something', function(e,data) {
e.stopImmediatePropagation();
data.e.stopImmediatePropagation(); // neither work
});
如果我能阻止所有这样的后续事件是最佳的,但如果有办法检查是否设置了自定义事件,我也可以使其工作。
我可以检查override:something
是否存在,如果存在,请不要在之后执行默认的something
事件。
我已尝试设置删除这样的特定回调,但它没有按预期执行,可能难以管理。
var mycb = function() {
alert('hi');
}
$(document).on('something', mycb);
// now to remove it
$(document).off('something', mycb); // does not remove the event
非常感谢任何帮助。
答案 0 :(得分:0)
感谢帮助人员,但这个解决方案似乎是我现在唯一能找到的工作。但仍然接受替代答案。
var override = jQuery._data($(document)[0], 'events')['override:something'];
$(document).trigger('override:something', data);
if ( typeof override == typeof undefined )
$(document).trigger('dashboard:friend', data);