2011-08-08 85 views
0

我有以下腳本:jQuery的 - VAR是underfined

$('.news ul li').hide(); 
    $('.news ul li:first-child').show(); 


    function Roller() { 
     var CurrectNews = $('.news ul li').filter(':visible'); 
     var FirstNews = $('.news ul li:first-child'); 

     if ($(CurrectNews).is(':last-child')){  
       $(CurrectNews).fadeOut('slow'); 
       $(FirstNews).fadeIn('slow'); 
      } else { 
       $(CurrentNews).fadeOut('slow'); 
       $(CurrentNews).next().fadeIn('slow');    
     } 
    } 
    setInterval(Roller, 5000); 

當我運行它,Firebug是說CurrentNews is underfinded。爲什麼?

當我注意到$('.news ul li').filter(':visible');它確實找到1個元素,正如所料。

任何建議非常感謝。

+3

您似乎在'CurrentNews'和'CurrectNews'之間自由切換。這可能是問題所在。 –

+0

@FrédéricHamidi - 它永遠是小事!抱歉,添麻煩了。 – Iladarsda

回答

4

檢查拼寫:

CurrectNews 
    ^

CurrentNews 
    ^

...是不同的變量名。

+0

可能是一個評論:/ – jAndy

+1

它回答這個問題,但? –

+0

@jAndy - 爲什麼?它回答了這個問題。該變量未定義,因爲當Dogbert試圖定義它時,他拼錯了它。 – Quentin

1

看來你可能有一個錯字:

if ($(CurrectNews).is(':last-child')){  
      $(CurrectNews).fadeOut('slow'); 
      $(FirstNews).fadeIn('slow'); 
     } else { 
      $(CurrentNews).fadeOut('slow'); 
      $(CurrentNews).next().fadeIn('slow');    
    } 

CurrentNews在前兩種情況下實際上CurrectNews。這可能會導致問題

編輯:昆汀最先到達那裏:)

2

你在裏面有幾個錯別字。嘗試

function Roller() { 
    var CurrentNews = $('.news ul li').filter(':visible'); 
    var FirstNews = $('.news ul li:first-child'); 

    if (CurrentNews.is(':last-child')){  
      CurrentNews.fadeOut('slow'); 
      FirstNews.fadeIn('slow'); 
     } else { 
      CurrentNews.fadeOut('slow'); 
      CurrentNews.next().fadeIn('slow');    
    } 
} 
+3

除此之外,取出變量的重新包裝。沒有必要構造一個jQuery對象的另一個jQuery對象。 – Shef

+0

@謝菲啊,沒注意到。固定。 – Dogbert

+0

@Shef - 重新包裝?你能解釋一下嗎? – Iladarsda