2010-01-18 68 views
0

我對jQuery(以及對於這個問題的javascript)來說很新,所以這可能只是我正在做的一些愚蠢的事情,但這真的讓我很煩惱!當我添加一個速度時,jQuery效果不起作用

我想要做的就是給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'); 
      }); 
    }); 
}); 

哪些出來,在沒有問題衰的形象,但2幅圖像之間不會改變。 .. 哎呀,應該是#logo。明白了一個現在的工作,到討厭的雲彩......

回答

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'); 
    } 
); 
+0

謝謝你的想法。我試圖按照你的建議向雲端添加「緩慢」,但是當我點擊它們時什麼也不做。 至於圖片,我編輯了我的帖子以顯示我正在使用的完整代碼(並且在隱藏/顯示替換爲切換狀態時會切換)。像雲一樣,它可以工作,但不是當我添加速度時... – Mike 2010-01-18 11:09:59

+0

您在混合使用jQuery和JavaScript方法。 JavaScript沒有顯示/隱藏方法。您必須將您的DOM對象「轉換」爲jQuery對象,然後才能使用這些方法。另外'雲'從哪裏來? – 2010-01-18 11:16:02

+0

嗯,好的。我已經定義了一個包含4個雲類的數組,以便稍後在腳本中進行操作: var clouds = [「。cloud1」,「。cloud2」,「。cloud3」,「。cloud4」]; – Mike 2010-01-18 11:33:38