Microsoft Edge:onclick事件停止工作?

Cor*_*rne 18 javascript onclick javascript-events mouseevent microsoft-edge

我在Microsoft Edge中的(ASP.NET)Web应用程序有奇怪的问题.

在某个时刻,onclick事件停止工作.页面上响应该onclick事件的所有按钮都停止工作.在同一页面上,我有一些响应onmousedown事件的按钮,它们继续工作.

如果我刷新页面,问题就消失了.控制台中没有错误.我没有其他浏览器(包括Windows 10下的IE11)的这个问题.

你们有没有遇到过类似的问题?

Wil*_*ill 6

这不是一个完整的答案,因为它没有解决为什么 click事件不起作用,但我觉得它属于这里,因为我的团队和我无可救药地试图找到这个问题的答案.它似乎是Edge中的一个错误,我们尝试过的每一个解决方法都失败了,直到我偶然发现了@ Come的评论.

解决方案是将所有click事件更改为mouseup事件,模拟相同的行为.由于某种原因mouseup被触发即使click不是.mousedown也适用,但mouseup更恰当地模仿click.

var listenType = (navigator.userAgent.toLowerCase().indexOf('edge') != -1) ? 'mouseup' : 'click';

// ...

$("#my_element").on(listenType, function() 
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

希望这有助于某人!


Kel*_*ton 5

这是Edge中的一个错误.

我发现它与弹出子窗口和重新排列(或修改)表中的tr有关.

https://connect.microsoft.com/IE/feedback/details/2109810/browser-stops-registering-click-events-on-table

要解决此问题,您必须强制重绘表.您可以通过在修改表之前设置display:none,然后在更改后设置display:previousValue来完成此操作.

希望这可以帮助.