2013-08-28 25 views
1

我有兩個通過xQuery生成的無序列表(一個按頻率排序,另一個按字母順序排列)。頻率排序列表默認顯示,而字母列表通過Javascript隱藏。用戶然後可以選擇單擊鏈接以顯示字母列表,然後頻率列表被隱藏。用戶可以在列表之間來回切換。這兩個列表都顯示在Colorbox彈出窗口中。爲兩個不同的動態生成列表選擇所有按鈕

我需要添加複選框到每個列表,幷包括一個按鈕,在每個列表的「全選」/「全部清除」之間切換。我的問題是,當我查看頻率排序列表時,點擊「全選」,然後點擊鏈接查看字母列表,所有值仍然被選中,切換按鈕文本變回「全選」。當我現在單擊「全選」按鈕時,文本將切換回「全部清除」,但不會取消選中複選框。

當用戶在兩個列表之間切換時,是否有辦法讓複選框「重置」?因此,當他們點擊字母列表時,複選框全部取消選中,按鈕顯示「全選」?

下面的代碼:

$(document).ready(function(){ 
    $('.select-all:button').toggle(function(){ 
     $('input:checkbox').attr('checked','checked'); 
     $(this).val('Clear All'); 
     event.preventDefault(); 
    },function(){ 
     $('input:checkbox').removeAttr('checked'); 
     $(this).val('Select All'); 
     event.preventDefault();   
    }) 
    }) 

    <li> 
    <input type="checkbox">{$display-value}</input> 
    </li> 

    <input type="button" value="Select all" class="select-all"></input>, 
    <input type="submit" value="Submit"></input> 

回答

0

爲什麼你不能把你的兩個表顯示,您應該已經使用toggle功能?當顯示任何列表時,第一步將選擇所有屬於複選框的子節點並刪除選中的屬性。

或者,編寫一個函數,它接受父元素並在其下面遍歷子複選框並取消選中它們。當你拉起你的第一個列表或者在兩者之間切換時,首先調用這個函數。

你有問題的一部分我不理解?這似乎微不足道,特別是因爲你的代碼已經基本上做你在問什麼:)

+0

對不起,我新來使用jQuery,這是我繼承的代碼。列表已經設置完畢,我只需要添加複選框並在用戶打開按字母順序排序的列表時,將「全選」按鈕文本保留爲「全部清除」。 – user2725782

相關問題