我有一个jquery,bootstrap包含在我正在写的页面中。这是一个复杂的页面。我遇到的问题是Internet Explorer没有看到mousedown事件。 Chrome和FF都看到这个事件很好但不是IE。
我用这个事件写了一个测试页面,它在IE中运行得很好。所以我的问题是......
是否有办法通过开发人员工具来确定取消事件的内容?
我怀疑我所包含的许多.js文件中有一个是取消了mousedown事件而且IE已经不再看到它了。 Chrome和FF确实如此。所以我不是100%被取消,但这是我唯一可以想到的。
代码实际上是无关紧要的,因为它是jquery和bootstrap的全部内容。但是,我正在使用可拖动和可调整大小的div。这就是我需要使用jquery的原因。使用引导程序是因为我在页面上也有一个所见即所得的编辑器。
请不要推荐点击。我需要mousedown。当鼠标向下时,可拖动和可调整大小的div周围的边框变为红色,我有一些代码可以选择该div来捕获顶部,左侧,宽度和高度,因为它被移动和调整大小。
如果选择了click作为事件,则用户必须先单击div框然后单击并按住才能移动它。这不是一个用户友好的界面。
非常感谢任何帮助。
答案 0 :(得分:0)
您对cancel,.preventDefault()或.stopPropagation的确切含义是什么?如果我们谈论的是preventDefault - 您仍然可以将事件监听器添加到父容器,然后查看您的事件对象 - 它可能有一些数据要追溯。替代方法是覆盖jQuery .on方法,看看谁实际订阅了该事件。
经过多一点思考 - 在恶意攻击之前添加另一个侦听器,在jquery加载代码之后立即插入带有事件绑定的文档就绪处理程序。在新的mousedown处理程序中,尝试覆盖有问题的事件方法。
<强>更新强>
您应该尝试逐个检查附加到元素的所有事件。要做到这一点 - 请查看此帖子jQuery find events handlers registered with an object
简而言之 - 尝试使用jQuery._data( elem, "events" );
查看附加的事件侦听器并检查代码库中的代码。找到原因后,更容易达到所需的功能。在此之前,这只是猜测。