簡體   English   中英

在document.body上的Click事件無法在IE8上正常運行

[英]Click event on document.body not working as it should on IE8

我正在對網頁進行一些調整,正在使用MVC和jquery。

基本上,我的頁面上有一些幫助圖標,當用戶單擊該圖標時,會出現一個帶有幫助說明的氣泡。

我在該頁面的javascript中有以下代碼:

AddHelpIconMouseEvents: function(element, msg, divForm) {
   $(element).live('click', function(event) {
      if (event.type === "click") MyClassHelper.showHelpIconBubble(msg, divForm, event);
   });
   $(document.body).click(function() { $(divForm).hide('fast'); });            
}

如您所見,我正在使用document.body.click事件捕獲幫助提示框之外的所有點擊,並隱藏提示框。

現在考慮這種情況,我單擊幫助圖標,然后顯示氣泡,如果我單擊頁面上的其他任何位置,氣泡將按預期消失,但是我遇到的問題是,如果不是單擊頁面上的空白我單擊一個鏈接,該鏈接顯示頁面的另一部分,隱藏包含幫助圖標的部分,但幫助提示框並沒有消失,它仍然顯示。

在Firefox上不會發生這種情況,在Firefox中,我可以單擊鏈接或空白區域,氣泡消失。

我認為這可能與IE處理事件的方式有關,我想我對此有所了解,所以我想知道是否有人知道如何解決此問題,我想我可以在鏈接上放置一些代碼並驗證氣泡是否有效是可見的,可以隱藏它,但是我不喜歡這個主意,我認為這不是一個好的解決方案,我想知道是否還有另一種更好的方法來解決這個問題。

謝謝,

您可以創建一個函數來檢查幫助捆綁包,以在DOM中檢查它是否已經存在。 如果是這樣,請將其從DOM中刪除。 您必須在其他所有鏈接上調用此函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM