在我的触发代码中,如何知道已经调用了 preventDefault
?
$(document).trigger('customEvent', params);
if (/* ??? */)
doDefaultActions();
在我的触发代码中,如何知道已经调用了 preventDefault
?
$(document).trigger('customEvent', params);
if (/* ??? */)
doDefaultActions();
trigger()方法也可以接受事件对象作为参数。如果你能够创建一个事件对象,就像这样:
var event = jQuery.Event("customEvent");
$(document).trigger(event);
那么您可以在触发事件后检查是否调用了preventDefault(),示例如下:
var prevented = event.isDefaultPrevented();
var event = new CustomEvent("close", { "cancelable": true });
// now event listeners can prevent default behavior
element.onclose(event);
// or: element.dispatchEvent(event);
if (!event.defaultPrevented)
defaultBehavior();
if (event.defaultPrevented) { // 默认操作已被阻止 }
event.isDefaultPrevented()
根据preventDefault()是否被调用,此函数将返回'true'或'false'。
自定义事件没有一些默认的操作发生...(它们是自定义的)。
另一方面,如果你想要停止这个事件向其他地方冒泡的效果,那么可以看看triggerHandler
,它不会向上层冒泡...