2009-07-21 80 views
1

我正在使用jQuery来显示/隐藏列表,但它需要两个点击链接而不是一个来显示列表。任何帮助?在jQuery中切换状态不正确

jQuery.showList = function(object) { 
    object.toggle(function(){ 
      object.html("▾"); 
      object.siblings("ul.utlist").show("fast"); 
     }, function(){ 
      object.html("▸"); 
      object.siblings("ul.utlist").hide("fast"); 
     }); 
} 

$(document).ready(function() { 

    $("#page").click(function (e){ 
     e.preventDefault(); 
     var target = $(e.target); 
     var class = target.attr("class"); 
     if(class == "list") 
      $.showList(target);  
    }); 
}); 

回答

0

不知道这是否会解决所有问题,但停止使用保留关键字。 将变量类改为类似c的东西。并将对象变量更改为至少obj。

0

执行以下行之有效

jQuery.showList = function(obj) { 
    var list = obj.siblings("ul.utlist"); 
    if(list.is(":visible")){ 
     obj.html("▸"); 
     list.hide("fast"); 
    } else { 
     obj.html("▾"); 
     list.show("fast"); 
    } 
} 
1

这可能是因为拨动认为object已经可见,并执行“隐藏”的条款。

编辑: 呃..完全循环的逻辑;用户怎么能点击它:-)

PS。您在自己的回复中将逻辑从is-object-visible?更改为is-list-visible?

+0

正确,传递的对象是链接元素,而不是链表本身。这可能是它无法正常工作的原因。 – Derferman 2009-07-21 18:56:00