2011-05-28 69 views
1

我有一個包含以下代碼的多個實例的頁面:jQuery的遍歷問題

<div class="company"> 
    <a class="toggle" id="<%= "tgl#{company.id}" -%>">...</a> 
    <p>...other stuff...</p> 
    <div class="clear"></div> 
    <div class="expand_me companyExpand" id="">... 

這段代碼顯示每個「板」的開始。當用戶點擊.toggle時,我需要.expand_me使用Jquery切換打開。

這是我的代碼到目前爲止 - 它不工作,我認爲這是由於遍歷問題。

$(".toggle").click(function() { 
    $(this).parent().children(".expand_me").toggle("blind", {}, 500, callback); 
}); 

我該如何解決這個問題?

+0

您例如不顯示在'了'標籤關閉......是'p'並列入了''或同級別的div? – 2011-05-28 10:13:52

+0

我可能不是遍歷問題,但你如何調用'toggle'。看看它所需的參數:http://api.jquery.com/toggle/也不是沒有'href'屬性的鏈接不會被渲染爲鏈接。這工作:http://jsfiddle.net/csgHQ/ – 2011-05-28 10:16:59

+1

@Felix,OP是使用jQuery的UI擴展版本http://jqueryui.com/demos/toggle/ – 2011-05-28 10:18:04

回答

0

最安全的辦法是

$(".toggle").click(function() { 
    $(this).closest('.company').find('.expand_me').toggle("blind", {}, 500, callback); 
    return false; // to avoid following the actual link 
}); 

另外請注意,您必須使用該定義的方法callback。 (或使用你想要的功能的名稱,而不是
我說這個以防萬一你從jquery例子複製/粘貼代碼。

http://jsfiddle.net/gaby/duAue/

1
$(".toggle").click(function() { 
    $(this).siblings(".expand_me").slideToggle(500, callback); 
}); 
+0

蓋比的版本適合我。謝謝你,我很欣賞它的簡潔。 +1。 – sscirrus 2011-05-28 10:22:05