IE中的jQuery挑战是(:悬停)?

IE中的jQuery挑战是(:悬停)?,jquery,internet-explorer,hover,Jquery,Internet Explorer,Hover,我为一个问题挣扎了好几天,却找不到答案 我有一个鼠标悬停的小东西,它在所有浏览器中都能正常工作,但在IE7、IE8和IE9中都不能正常工作 这样做的目的是,一个div出现在菜单点上方的鼠标上,并在离开菜单或div时消失。我想,我已将问题隔离到以下几行: 如果($('#顶部导航')。是(':hover')|$('#标题')。是(':hover')|$('#菜单a')。是(':hover')){ 因为IE中的行为,我很确定这就是麻烦所在 $(document).ready( function() {

我为一个问题挣扎了好几天,却找不到答案

我有一个鼠标悬停的小东西,它在所有浏览器中都能正常工作,但在IE7、IE8和IE9中都不能正常工作

这样做的目的是,一个div出现在菜单点上方的鼠标上,并在离开菜单或div时消失。我想,我已将问题隔离到以下几行: 如果($('#顶部导航')。是(':hover')|$('#标题')。是(':hover')|$('#菜单a')。是(':hover')){ 因为IE中的行为,我很确定这就是麻烦所在

$(document).ready( function() {
    $mypage = $("body").attr("class");
    $("#"+$mypage).show();
    $("#menu a:contains('"+$mypage+"')").parent().addClass("current");

    $("#menu a").hover(function() {
        $(".transparent").hide();

        $("#menu li").removeClass("current");
        $(this).parent().addClass("current");

        $element = "#" + $(this).text();
        $($element).show();
    });

    function hide_popup(){
        if ($('#top-navigation').is(':hover') || $('#header').is(':hover') || $('#menu a').is(':hover')) {
            return false;
        }else{
            $("#menu li").removeClass("current");
            $(".transparent").hide();

            $mypage = $("body").attr("class");
            $("#"+$mypage).show();
            $("#menu a:contains('"+$mypage+"')").parent().addClass("current");
        }
    };
    $("body").mouseover(function() {
        window.setTimeout( hide_popup, 2000 );
    });
});

我很高兴能得到任何帮助!干杯!

IE在CSS中的动态伪类及其JavaScript事件对应项方面一直存在臭名昭著的问题。你能做的最好的事情是跟踪鼠标移动,只有当鼠标进入目标元素的区域时才启动代码例程。换句话说,你应该使用mouseover event与screenX和screenY事件属性相结合。

IE在CSS中的动态伪类及其JavaScript事件对应项方面一直存在臭名昭著的问题。您可以做的最好的事情是跟踪鼠标移动,并仅在鼠标进入目标元素区域时启动代码例程。换句话说,您可以应该将鼠标悬停事件与screenX和screenY事件属性结合使用。

好的,我想出了一个解决方案:

function hide_popup(){
    $("#top").hover(function () {
        return false;
    },function () {
        $("#menu li").removeClass("current");
              $(".transparent").hide();

        $mypage = $("body").attr("class");
        $("#"+$mypage).show();
        $("#menu a:contains('"+$mypage+"')").parent().addClass("current");
    });
};

好的,我想出了一个解决办法:

function hide_popup(){
    $("#top").hover(function () {
        return false;
    },function () {
        $("#menu li").removeClass("current");
              $(".transparent").hide();

        $mypage = $("body").attr("class");
        $("#"+$mypage).show();
        $("#menu a:contains('"+$mypage+"')").parent().addClass("current");
    });
};