[英]Microsoft Edge: onclick event stops working?
我在Microsoft Edge中的(ASP.NET)Web应用程序有奇怪的问题。
在某一点上, onclick
事件停止工作。 页面上响应onclick
事件的所有按钮都停止工作。 在同一页面上,我有一些按钮响应onmousedown
事件并继续工作。
如果我刷新页面,问题就消失了。 控制台中没有错误。 我没有其他浏览器(包括Windows 10下的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有关。
要解决此问题,您必须强制重绘表。 您可以通过在修改表之前设置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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.