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