2012-01-27 96 views
1

我正在使用一些jquery隱藏頁面加載時的列表元素。當代碼是靜態的時候,它可以正常工作,但是列表元素是通過php動態生成的,並且在頁面加載時並不全部可用。我試着給.hide連接到負載的事件,但得到的錯誤,.live不是函數錯誤

$(「li.views行」)。生活不是一個函數。

代碼全部在http://jsfiddle.net/Ypqyv/,雖然因爲當你點擊運行時html已經存在,你看不到錯誤。 (不,我不能發佈到實際站點的鏈接;它在防火牆後面的開發服務器上。)

任何想法?我已經閱讀了大量關於.live()的問題的答案,但是它們都不適用於我的情況。

ETA:使用jquery 1.6。

+0

沒有得到任何錯誤。你的小提琴是否代表了實際情況? – 2012-01-27 22:45:17

+0

這適用於我...? – 2012-01-27 22:45:49

+0

儘可能多;正如我所說 - 實時代碼中的列表項是由php生成的,所以jsfiddle確實無法爲您提供確切的情況。 – EmmyS 2012-01-27 22:46:08

回答

0

我不知道你爲什麼得到錯誤.live is not a function error,但是,.live無論如何不會在這種情況下工作。

<li>元素在創建時不會觸發onload,因此$("li").live("load",handler)永遠不會被觸發。 http://w3schools.com/jsref/event_onload.asp

相反,您應該在將代碼添加到頁面後的代碼後面操縱列表項。

$.ajax({ 
    url: "...", 
    data: "...", 
    type: "...", 
    success: function(data){ 
    $("<li>"+data+"</li>").hide().appendTo("#myul"); 
    } 
}); 
0

檢查的JQuery的版本,您正在使用,.live()僅適用於版本1.3 - 1.8(不建議使用1.8),我相信從版本已被刪除1.9

+0

如果你已經讀過整個OP,你會看到它說我們使用的是1.6,它確實有'.live()'可用。 – EmmyS 2013-02-11 22:23:33