2010-08-19 230 views
3

使用Firebug進行開發時,我不斷收到此錯誤。JQuery不是函數錯誤

頁[X]的.css(「Z-指數」,x)是不是一個函數

函數本身工作正常,但我試圖找出它爲什麼一直萎靡不振的這一點。該函數正在同時重組數組和z索引。 我可不能像這樣訪問數組變量和調用函數嗎?還是這是別的?

全碼:

var pages = $("#use-wrapper").children("div"); 

pages.children("a.right").click(function(event) { 
    event.preventDefault(); 
    $(this).parent("div").css("z-index","0"); 
    pages.push($(this).parent("div")); 

    for(var x = pages.length; x >= 1; --x) { 
     pages[x] = pages[x-1]; 
     pages[x].css("z-index",x); 
    } 
    pages[0] = pages.pop(); 
}); 

回答

5

如果你做一個alert(pages[x]),你會發現,每一個pages[x]是一個DOM元素,而不是一個jQuery對象,這就是爲什麼你得到的錯誤pages[x].css不是一個函數。你可能想要做的:

$(pages[x]).css('z-index', x); 

編輯:即使 jQuery的允許您訪問pages的元素,就好像它是一個數組,它不是一個真正的數組對象,所以我懷疑是pushpop也能工作。

+0

這個函數調用所有的工作,就像push和pop一樣,但現在你已經明確了這個區別,我將嘗試清理它。謝謝。 – ChrisOPeterson 2010-08-19 14:33:35