我怎么能在触发代码中知道 preventDefault 被称为?

$(document).trigger('customEvent', params);
if (/* ??? */)
    doDefaultActions();
有帮助吗?

解决方案

trigger()也可以采用事件对象,因此,如果您可以创建事件对象,例如:

var event = jQuery.Event("customEvent");
$(document).trigger(event);

然后,您可以在触发器后检查一下,查看是否已调用DestractDefault():

var prevented = event.isDefaultPrevented();

其他提示

如果您问如何确定是否已防止默认值,请使用:

event.isDefaultPrevented()

这将根据是否调用了“ true”或“ false”返回“ true”或“ false”。

编辑:http://api.jquery.com/event.isdefaultprevented/

自定义事件没有发生的默认操作。(它们是自定义)。

另一方面,如果您想阻止此事件的起泡效果,请看一下 triggerHandler 这不会燃烧到层次结构。

据我所知,“ destress -deffault()”调用是关于防止本机浏览器对诸如单击锚标签或文本字段中的键盘等事物的响应。事件处理周期结束后,结束了。对于虚构的事件,我认为它根本没有任何效果,因为这与jQuery事件处理系统有关,而与本机浏览器功能无关。

您的代码可以在某个地方设置某种标志,以便与“外界”进行通信。

edit]哦,您可以尝试让处理程序对事件对象的引用藏在外部代码可以找到它的某个地方,然后用“ isDefaultPrevented()”外部检查。我不知道这是否有效。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top