2014-06-06 49 views
4

我有一系列複選框,每週的每一天都有一個「全部」複選框來檢查/取消選中所有日子。我的用例需要多組這些複選框,並且在我動態創建它們時,我使用jQuery.clone()函數來複制集合並將它們添加到新行;但克隆的複選框無法正常工作。 OnClick事件觸發;但無論出於何種原因,我無法訪問Chrome中任何克隆複選框上的「已檢查」屬性。我嘗試了以下方法(使用All複選框作爲示例):克隆複選框「已檢查」屬性undefined

$('input[name="all"]:last').prop('checked') 
$('input[name="all"]:last')[0].checked 
$('input[name="all"]:last').attr('checked') 

所有返回undefined。我發現的唯一方法,實際上與問候的選中狀態返回任何東西是:

$('input[name="all"]:last').is(':checked') 

我有這個bug在這裏複製:http://jsfiddle.net/YfY5U/

真的希望有人有什麼事情的一些想法,因爲我「M完全陷入:(

+0

直接把所有相關的代碼中的問題,而不是把依賴於其他網站您的問題..有沒有足夠的信息在這裏給一個答案。 –

回答

2

在這部分代碼:

var new_content = $('.initial').clone() 
     .removeClass('initial') 
     .find(':checkbox').each(function(){ 
      $(this).removeProp('checked'); 
     }).end().appendTo('fieldset'); 

刪除屬性在克隆後「檢查」。所以毫不奇怪它是不確定的。 只要改變

$(this).removeProp('checked'); 

$(this).prop('checked', false) 
+2

通常,當我以這種方式移除它時,道具會被添加回來;但您的解決方案完美無瑕。謝謝 :) – skrause