当我添加速度时,jQuery效果不起作用

时间:2010-01-18 10:08:45

标签: javascript jquery

我对jQuery很新(和javascript这个问题),所以这可能只是我正在做的蠢事,但它真的很烦我!

我所要做的就是为jQuery的隐藏和显示功能添加速度。我正在使用的代码是:

for (var i in clouds) {
    $(clouds[i]).click(function() {
    $(this).hide();
    });
}

在点击云时隐藏云,

function fadeLogo(state) { 
    var element=document.getElementById('logo');

    if (state=='home') {
        element.hide;
        element.src='images/home.png';
        element.show;
    }

    else {
        element.hide;
        element.src='images/webNameLogo.png';
        element.show;
    }
}

隐藏图像,更改图像然后再次显示。这是由

调用的
onMouseOver=fadeLogo('home') onMouseOut=fadeLogo('logo')

这很好,但是瞬间发生。每当我尝试包括速度时,无论是“慢速”,“快速”还是毫秒,它都无法工作,它们只会保持原始状态。即使在没有速度的情况下添加hide()也会在Safari的错误控制台中引发错误:

TypeError:表达式'element.hide'[undefined]的结果不是函数。

没有报告云的错误,他们只是坐在那里没有做任何事情!

希望有人可以提供帮助!

谢谢

编辑:

现在有了这个图像更改:

$(function() { //This function fades the logo to the home button on mouseover

    $('.logo').hover(function() {
        $(this).fadeOut(
            'slow',
            function () {
                $(this).attr ('src','images/home.png').fadeIn('slow');
            });
    }, function() {
        $(this).fadeOut(
            'slow',
            function () {
                $(this).attr('src','images/webNameLogo.png').fadeIn('slow');
            });
    });
});

这会使图像消失并且毫无问题,但两张图像之间没有变化...... 糟糕,应该是#logo。让那个人现在工作,进入讨厌的云......

1 个答案:

答案 0 :(得分:0)

使用hide()方法如下:

for (var i in clouds) {
    $(clouds[i]).click(function() {
    $(this).hide( 'slow' ); // or you can pass the milliseconds
    });
}

至于图像隐藏,你应该做这样的事情:

$( 'selector for your image' ).hide (
    'slow',
    function () {
        $( this ).attr ( 'src', 'images/other.png' ).show ( 'slow' );
    }
);