[英]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.