javascript如何确定取消事件的内容

时间:2015-10-15 17:41:03

标签: javascript jquery internet-explorer events

我有一个jquery,bootstrap包含在我正在写的页面中。这是一个复杂的页面。我遇到的问题是Internet Explorer没有看到mousedown事件。 Chrome和FF都看到这个事件很好但不是IE。

我用这个事件写了一个测试页面,它在IE中运行得很好。所以我的问题是......

是否有办法通过开发人员工具来确定取消事件的内容?

我怀疑我所包含的许多.js文件中有一个是取消了mousedown事件而且IE已经不再看到它了。 Chrome和FF确实如此。所以我不是100%被取消,但这是我唯一可以想到的。

代码实际上是无关紧要的,因为它是jquery和bootstrap的全部内容。但是,我正在使用可拖动和可调整大小的div。这就是我需要使用jquery的原因。使用引导程序是因为我在页面上也有一个所见即所得的编辑器。

请不要推荐点击。我需要mousedown。当鼠标向下时,可拖动和可调整大小的div周围的边框变为红色,我有一些代码可以选择该div来捕获顶部,左侧,宽度和高度,因为它被移动和调整大小。

如果选择了click作为事件,则用户必须先单击div框然后单击并按住才能移动它。这不是一个用户友好的界面。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您对cancel,.preventDefault()或.stopPropagation的确切含义是什么?如果我们谈论的是preventDefault - 您仍然可以将事件监听器添加到父容器,然后查看您的事件对象 - 它可能有一些数据要追溯。替代方法是覆盖jQuery .on方法,看看谁实际订阅了该事件。

经过多一点思考 - 在恶意攻击之前添加另一个侦听器,在jquery加载代码之后立即插入带有事件绑定的文档就绪处理程序。在新的mousedown处理程序中,尝试覆盖有问题的事件方法。

<强>更新

您应该尝试逐个检查附加到元素的所有事件。要做到这一点 - 请查看此帖子jQuery find events handlers registered with an object 简而言之 - 尝试使用jQuery._data( elem, "events" );查看附加的事件侦听器并检查代码库中的代码。找到原因后,更容易达到所需的功能。在此之前,这只是猜测。