0

使用jQuery“拥有”文本输入的最佳方式是什么,以便我可以输入它,从“拥有”发生的代码点监听事件,否则会阻止任何其他JavaScript接收keydownkeyup事件。

4

2 回答 2

0

直接在元素上设置事件处理程序并使用stopImmediatePropagation(),这样即使元素上的其他处理程序也不会运行。您可能还想preventDefault()为某些元素类型。

确保您的事件处理程序直接在元素上并且不使用委托/实时表单,否则可以在事件冒泡到您的处理程序之前触发其他处理程序。

如果元素在脚本运行之前就在页面上,那么其他东西可能已经有机会添加事件处理程序。在这种情况下,您可以在添加您自己的之前删除元素上已经存在的任何事件处理程序。您可以使用获取事件处理程序的对象, $._data(*element*,"events")然后在键上递增以查找所有事件的名称并删除对象上的任何事件处理程序。

于 2013-10-24T20:51:07.433 回答
0

您可以阻止事件传播

我们可以使用 event.isPropagationStopped() 来确定是否曾经调用过这个方法(在那个事件对象上)。

此方法也适用于使用 trigger() 触发的自定义事件。

请注意,这不会阻止同一元素上的其他处理程序运行。

于 2013-10-24T20:23:06.343 回答