2011-07-21 127 views
0

我想切換.toggle-item-(number here).link(number here)。在開始時,所有.toggle-item都關閉。只能同時顯示一個切換項目。每當新的切換項目打開時,另一個打開的切換項目應該關閉。jQuery切換不起作用

用代碼鏈接是在這裏:http://jsfiddle.net/rAUqb/

爲什麼jQuery代碼不工作?

回答

0

更新Marc的代碼,以便它關閉時,點擊其他人。

$(document).ready(function() { 
    $('[class^=toggle-item]').hide(); 
    $('[class^=link]').click(function() { 
     var $this = $(this); 
     var x = $this.attr("class"); 
     var className = '.toggle-item-' + x.replace('link', ''); 
     $(className).toggle(); 
     $('[class^=toggle-item]:not('+className +')').hide(); 
     return false; 
    }); 
}); 
+0

不需要像這樣複雜,請參閱我的更新代碼。 – Marc

+0

它並不是非常複雜。您更新後的代碼在多次點擊時不會切換同一項目,也不會隱藏加載項目 – Contra

+0

謝謝 - Marc和Contra - 您都對解決方案有所貢獻 – rabea

1

我已更新您的代碼。

你沒有正確地得到數字。

$(document).ready(function() { 
    $('[class^=toggle-item]').hide(); 
    $('[class^=link]').click(function() { 
     var x = $(this).attr("class").replace('link', ''); 
     $('[class^=toggle-item]:not(.toggle-item-'+x+')').hide(); 
     $('.toggle-item-' + x).toggle(); 
     return false; 
    }); 
}); 

x中的值是完整的類名(「link1」,「link2」等)。我只是簡單地刪除了「鏈接」部分以獲得該號碼。

+0

謝謝喲,但是這段代碼沒有關閉已經打開的切換項目 - 對此有什麼想法? – rabea

+0

是的,只有一行額外的代碼。更新。 – Marc

+0

這段代碼已經破解,我的評論 – Contra

0

Jquery accordion不適合你嗎?

+0

不,因爲一開始沒有應該打開的曲目條目 – rabea

+0

請查看'可摺疊'選項。這將允許所有部分一次關閉。如果它能爲你工作,它比試圖重新發明輪子要好得多。 – Jay

0

使用attr("class")代替attr("classname")