jQuery不像在其他浏览器中那样在Internet Explorer中工作

时间:2011-11-05 10:56:02

标签: javascript jquery internet-explorer

我正在建立一个个人网页,并在www.aegaeon.comule.com上放了一个临时版本。我按照Dragon Interactive教程(http://labs.dragoninteractive.com/pufferfish_article.php)制作了一个带有渐变背景的淡入淡出悬停菜单。我已经将子页面安排为“面板”,以便在单击相应的导航按钮时隐藏和显示。这是我的javascript / jQuery代码:

var color_text = '#999';
var color_text_hover = "#C0C0C0";

$(function(){

    $("div.panel:not(:first)").hide();  // hide all panels except the home panel

    var loc=window.location;
    window.location.replace(loc+"#home");   // make window location correspond to home panel

    var menu=$("#navbar a");
    menu.click(function(){
        var previous=window.location.hash;
        var selected=$(this).attr("href");
        if (previous != selected) {
            $("div.panel"+previous).fadeOut("slow")
            $("div.panel"+selected).fadeIn("slow");
            }
        menu.removeClass("selected");
        $(this).addClass("selected");
    });

    $('#navbar li a').append('<span class="hover"></span>')

    $('#navbar li a').hover(function() {


        if(!$(this).hasClass('selected')){
        // Stuff that happens when you hover on
        $('.hover', this).stop().animate({
            'opacity': 0.2
            }, 400)

            $(this).stop().animate({ 
                //backgroundColor: color_bg_hover,
                color: color_text_hover
            },400);
        }

    },function() {

        // Stuff that happens when you unhover
        $('.hover', this).stop().animate({
            'opacity': 0
            }, 700, 'easeOutSine')

        $(this).stop().animate({ 
                //backgroundColor: color_bg,
                color:color_text
            },700);

    })
});

在Chrome,Firefox和Safari中,该网站似乎运行良好,但在Internet Explorer中则不然。导航按钮最初是白色的,但是当您将鼠标悬停在它们上时确实可见,这表明javascript至少部分正常工作,但我无法解释不同的行为。任何想法都将不胜感激。

2 个答案:

答案 0 :(得分:0)

我看到很多缺失的分号,例如:

        $("div.panel"+previous).fadeOut("slow")
        $("div.panel"+selected).fadeIn("slow");

检查您的代码。

答案 1 :(得分:0)

.stop()在ie。

中不起作用 而不是      。.stop()动画({}); 使用      .animate({想要应用于元素的新动画。});