2017-03-17 99 views
0

我正在開發一個非常大的項目,並且設法讓大多數所有瀏覽器(MS Edge除外)都能正常工作。沒有supprise那裏,但我真的需要這個懸停效果的工作。懸停事件在Edge中觸發一次,然後完全停止工作。另外,它甚至不會調用我設置的功能。我已經淡化了基本功能和相關代碼,進行了演示並將其包含在此處以及在此處設置jsfiddle:https://jsfiddle.net/8cqw60Le/4/。差點忘了,我正在運行Windows 10完全更新,代碼運行Jquery 3.2.0,它設置在「onDomready」上,儘管沒有其他我嘗試過的工作。請幫忙。我很難過。懸停事件在MS Edge中沒有正確觸發

HTML:

<div id="hover_test_div" style="width:300px; height:300px; background:rgba(0,0,0,0.3);">Hover over this.</div> 

JQuery的:

$("#hover_test_div").hover(function() { 
    alert ("Over"); 
    trigger_function(); 
}, function() { 
    alert ("Out"); 
    trigger_function(); 
}); 

function trigger_function() { 
    alert ("Event triggered.") 
} 

我已經調查並試圖提出的建議,仍然不封邊工作。這是我在jsfiddle中嘗試的。

$("#hover_test_div").on("mouseover mouseout", function() { 
    alert($(this).text()); 
}); 

它在一切都很好,但它只觸發一次,然後什麼都沒有。這是新的JSFiddle。 https://jsfiddle.net/8cqw60Le/8/

+0

懸停方法被刪除 - 並且在Edge發佈之前被刪除。 這不奇怪,它不工作。使用.on方法來確保與邊緣的兼容性。 更多信息:http://api.jquery.com/on/#additional-notes – Korgrue

+0

感謝您的快速回復。我閱讀了該方法,並嘗試了您的建議,並且採用相同的方式進行反應。我使用最新的調整編輯了帖子。 –

回答

0

當您在mouseover事件處理程序中調用alert函數時,這似乎是Edge中的一個錯誤。我做了一些非常快速搜索,並沒有看到任何地方的寫作,所以它可能是值得寫的。

錯誤的性質:在mouseover事件處理程序中調用alert似乎會混淆Edge的選擇/鼠標模型。我注意到在alert之後,您無法再選擇文本。

要DUP:

  1. 將鼠標移動到的框。
  2. 單擊提示框上的確定。
  3. 嘗試選擇「將鼠標懸停在此上。」文本。 什麼都沒有發生。

解決方案:

執行alertsetTimeout。這是應該工作的jsfiddle


編輯:我寫了一個bug報告here

+0

非常感謝你。我開始覺得我瘋了。自從發佈以來,我已經找到了一種解決方法。它不如你的優雅和緊湊,但我不想再次重新編程。LOL。我投了你的答案,但沒有足夠的代表呢。再次感謝你。 –

+0

@KentTorkelson很高興能幫到你。如果你覺得這個答案足夠了,那麼將其標記爲Accepted將有助於社區分類哪些問題需要更好的答案(它也給我甜蜜的互聯網點)。請參閱http://stackoverflow.com/help/someone-answers。 – JosiahDaniels

+0

很高興完成。再次感謝。 –