2010-07-01 47 views
0

以下代碼適用於Google Chrome和Firefox,但不適用於IE8。我不知道爲什麼,這是一個工具提示並使用jQuery。這不是我的代碼。當您在Chrome或Firefox上運行時,將鼠標懸停在元素上,即會顯示工具提示。在IE中,工具提示沒有,似乎是懸停聲明的問題。如何調試IE bug

我嘗試了一步一步的調試,但jQuery創建了十幾個變量,這使得調試幾乎不可能。

下面的代碼

(function ($) { 

$.fn.easyTooltip = function (options) { 

    // default configuration properties 
    var defaults = { 
    xOffset : 10, 
    yOffset : 45, 
    tooltipId : "tooltip", 
    clickRemove : false, 
    content : "", 
    useElement : "", 
    animation : true 
    }; 

    var options = $.extend(defaults, options); 
    var content; 

    this.each(function() { 
    var title = $(this).attr("title"); 
    $(this).hover(function (e) { 
     content = (options.content != "") 
     ? options.content 
     : title; 
     content = (options.useElement != "") ? $("#" 
     + options.useElement).html() : content; 
     $(this).attr("title", ""); 
     if (content != "" && content != undefined) { 
     $("body").append("<div id='" + options.tooltipId 
     + "'>" + content + "</div>"); 
     $("#" + options.tooltipId).css("position", 
     "absolute").css("top", 
     (e.pageY - options.yOffset) + "px").css(
     "left", (e.pageX + options.xOffset) + "px") 
     .css("display", "none"); 
     if (options.animation == true) { 
     $("#" + options.tooltipId).animate({ 
      marginTop : "12px", 
      opacity : "show" 
      }, 400); 
     } else { 
     $('#' + options.tooltipId).show(); 
     } 

     } 
    }, function() { 
     $("#" + options.tooltipId).remove(); 
     $(this).attr("title", title); 
    }); 
    $(this).mousemove(function (e) { 
     $("#" + options.tooltipId).css("top", 
     (e.pageY - options.yOffset) + "px").css("left", 
     (e.pageX + options.xOffset) + "px") 
    }); 
    if (options.clickRemove) { 
     $(this).mousedown(function (e) { 
     $("#" + options.tooltipId).remove(); 
     $(this).attr("title", title); 
     }); 
    } 
    }); 

}; 

})(jQuery); 

任何想法知道的問題是與IE瀏覽器是什麼?

+1

您是否嘗試過Internet Explorer Developer工具欄。你有大量的工具來挖掘你的應用程序。 Link「」 – BlueBird 2010-07-02 20:37:01

回答

2

有些時候,當你使用不透明度值的任何元素..並且它有一個子元素也是你需要在mouseOver中顯示的時候,IE不會是子元素。這是我也面臨數次的常見錯誤。我通常所做的就是保持不透明。那麼它會工作。

這個技巧幫了我好幾次。試試它是否對你有幫助。