Microsoft Edge:onclick事件停止工作
Microsoft Edge: onclick event stops working?
我在Microsoft Edge中的(ASP.NET)web应用程序出现了奇怪的问题。
在某个时刻,onclick
事件停止工作。页面上响应onclick
事件的所有按钮都停止工作。在同一页上,我有一些响应onmousedown
事件的按钮,它们一直在工作。
如果我刷新页面,问题就消失了。控制台中没有错误。我对其他浏览器(包括Windows10下的IE11)没有这个问题。
你们有没有遇到过类似的问题?
这不是一个完整的答案,因为它没有解决为什么click
事件不起作用,但我觉得它属于这里,因为我和我的团队在试图找到这个问题的答案时陷入了绝望。这似乎是Edge中的一个错误,我们尝试的每一种解决方法都失败了,直到我偶然发现了上面的@Come评论。
解决方案是将我们所有的click
事件更改为mouseup
事件,模拟相同的行为。由于某种原因,即使click
没有被触发,mouseup
也被触发。mousedown
也能工作,但mouseup
更恰当地模拟了click
。
var listenType = (navigator.userAgent.toLowerCase().indexOf('edge') != -1) ? 'mouseup' : 'click';
// ...
$("#my_element").on(listenType, function()
{
// ...
}
希望这能帮助到别人!
这是Edge中的一个错误。
我发现这与弹出子窗口和重新排列(或修改)表中的tr有关。
https://connect.microsoft.com/IE/feedback/details/2109810/browser-stops-registering-click-events-on-table
要解决此问题,必须强制重新绘制表。您可以在修改表格前设置display:none,然后在更改表格后设置display:previousValue。
希望这能有所帮助。
我的修复方法是创建一个"隐藏"的输入元素,并对其调用焦点,从而神奇地返回点击。
在我的例子中,删除子元素会带来这个问题。因此,当我移除元素(包括用innerHTML替换DOM)时,我会在移除之前为元素创建style.display = "none"
。这解决了问题。
例如,我使用这个功能
function removeComponent(selector) {
$(selector).css("display", "none");
return $(selector).detach();
}
而不是
function removeComponent(selector) {
return $(selector).detach();
}
- jQuery UI自动完成突然停止工作
- JavaScript打印功能使日历停止工作
- 下拉列表在使用z索引放置在前面后停止工作
- 单击事件在触发一次主干js后停止工作
- “视频”标签后,触控事件在 iPad 上停止工作
- 事件处理程序在 Angular 控制器中停止工作
- node.js串行端口事件在重新连接到端口后停止工作
- JQuery:调整窗口大小时,事件处理程序将停止工作
- Microsoft Edge:onclick事件停止工作
- jQuery ajax调用后,具有相同id的事件停止工作
- 启动工具提示在任何其他事件运行后停止工作
- Jquery -在ajax和FormData之后单击事件停止工作
- jQuery在插件中点击事件停止工作
- Touchstart事件在滚动后停止工作
- 为什么我YUI滑块上的触摸事件突然停止工作?
- 身份验证.sessionChange Facebook事件在Javascript SDK中启用OAuth 2后停止工作
- 当点击事件调用时,jquery addClass方法停止工作
- Easeljs:鼠标事件停止工作
- 动态ul-li更改后,事件停止工作
- 单击事件停止工作