2011-08-29 52 views
1

我有以下代碼片斷,但它不起作用。可能是live()處理程序錯位:jquery slideToggle帶有live的下一個元素()

$('.link').next().hide().prev().live('click' ,function() { 
$(this).next('.desc_hidden').slideToggle(100); 
}); 

謝謝。 要理解這一點是原來的,但你可以看到它切換的每一個元素,而不僅僅是未來:

$('.link').live('click' , function(){ 
$('.desc_hidden').slideToggle('100'); 
}); 

更新,工作代碼是在這裏link。 謝謝大家。

+0

什麼是「live」調用意味着完成?你爲什麼不想使用標準的'bind'調用? – lonesomeday

+1

「可能live()處理程序錯位:」比我們需要相應的HTML來幫助你,不是嗎? – WTK

+0

Javascript使用列表元素生成內容。所有列表元素都有一個隱藏的div。 – elbatron

回答

2

假設從第二代碼片段開始,你只想讓每個.link顯示股利它旁邊,您可以使用以下命令:

$('.link').live('click' , function(){ 
    $(this).next('.desc_hidden').slideToggle('100'); 
}); 

(這migth需要一些調整,這取決於你的dom實現)。

+0

謝謝。是的,每個列表項都有一個鏈接,每個列表元素下都有一個隱藏的div(不在裏面),我想切換。不幸的是,你的代碼段不起作用,現在我試圖找出它有什麼問題 - 因爲它看起來不錯... – elbatron

+0

那麼這裏有一個小測試用例:http://jsfiddle.net/yMCEp/。它工作得很好,從你可以檢查與你的不同之處開始。或者發佈生成代碼/生成的html。 –

+0

謝謝。我改變了你的代碼上的html:[link](http://jsfiddle.net/ebatron/ueqz3/) – elbatron