2011-04-14 77 views
0

我有一个地区和相应的国家..当我点击一个地区,列表应该扩大,而折叠所有其他地区的列表。另外,当我再次点击相同的区域时,它应该切换。 但在我的情况下,每件事情都正常工作,除了切换功能在第一次点击时无法正常工作。jQuery切换不正常

$(document).ready(function(){ 
$("tbody[id*='titl']").live('click',function(){  
    var nextId = ('#' + $(this).next("tbody[id*='tbod']").attr('id')); 
    $("tbody[id*='tbod']").each(function(){ 
    var hideId = ('#' + $(this).attr('id'));  
    if(nextId != hideId) 
    { 
     $(hideId).hide();  
    } 
    else 
    {   

     $(hideId).toggle(); 
    } 

}); 
}); 
+0

能否请你创建一个http://jsfiddle.net/例子吗? – 2011-04-14 10:06:35

+1

向我们展示您的HTML。 – 2011-04-14 10:07:02

+0

HTML非常复杂......它由服务器呈现,并且非常动态.. – Misam 2011-04-14 10:20:21

回答

1

虽然你计算nextID与上下文tbody[id*='titl']选择但毕竟这当你调用$("tbody[id*='tbod']").each(function()是一个匹配的元素搜索整个DOM。

你应该写:$(this).next("tbody[id*='tbod']").each(function(){让您正在搜索附近的元素到现场tbody元素