2010-07-01 5 views
0

Следующий код работает в Google Chrome и Firefox, но не работает в IE8. Я не знаю, почему, это всплывающая подсказка и использует jQuery. Это не мой код. Когда вы запускаете Chrome или Firefox, наведите указатель мыши на элемент, появится всплывающая подсказка. В IE всплывающая подсказка не похожа на проблему с оператором наведения.Как отладить ошибку IE

Я пробовал пошаговую отладку, но 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. У вас есть множество инструментов для этого, чтобы заглянуть в ваше приложение. Ссылка «" – BlueBird

ответ

2

Несколько раз, когда вы создаете элемент со значением непрозрачности .. и у него есть дочерний элемент, который вам нужно показывать в mouseOver, IE не является дочерним элементом. Это обычная ошибка, с которой я столкнулся несколько раз. Обычно я делаю непрозрачность. то он будет работать.

Эта техника помогла мне несколько раз. Попробуйте, поможет ли это вам.

Смежные вопросы