2013-07-22 15 views
0

的有關檢查CheckAll複選框我檢查網頁上的所有複選框和移動母公司,這是一個表,每這些的將複選框複製到另一個div。而在取消勾選CheckAll複選框,我不得不取消所有的頁面上選中的複選框並從DIV複製的表格元素。一個元素指定一個參數值類不能正常工作,甚至上點擊次數

/*******************Check and Uncheck all the checkboxes on the page***********************************/ 
$("#dvReports #checkAll").click(function() 
{ 
    var pageNum = $("#dtlRptPrvNxtLnk .selected.link_look").html(); 
    alert(pageNum); 
    if ($("#dvReports #checkAll").is(':checked')) 
    { 
     $("#dvReports input[type=checkbox]").each(function() 
     { 
      $(this).prop("checked", true); 
      // If a listing is selected then move it to divPrintContainer, 
      // which is buried inside _reportLayout.cshtml 
      $(this).closest('table') 
       .toggleClass(pageNum) 
       .clone() 
       .appendTo("#divPrintContainer"); 
     }); 
    } 
    else 
    { 
     $("#dvReports input[type=checkbox]").each(function() 
     { 
      $(this).prop("checked", false); 
     }); 

     $("#divPrintContainer").children('table.'+ pageNum).remove(); 
    } 
}); 

我遇到了以下問題:

  1. 對於每個偶數上CheckAll複選框.toggleClass(pageNum)不工作的點擊。 即我第一次檢查Checkall.toggleClass(pageNum)分配的類名。現在我取消選中Checkall。我又檢查Checkall不會分配頁次爲類(但我確實看到與頁次警報)。

HTML in the fiddle

+0

任何機會,我們可以看到一些,這是運行鍼對HTML的? – devrooms

+0

使用$(「#dvReports #checkAll」)使我沒有使用唯一的ID,這是不允許的思考。 –

+0

@devrooms我在jsfiddle中用HTML更新了問題。 – BumbleBee

回答

1

如果我正確理解你的問題,它出現的問題是這一行:

$(this).closest('table').toggleClass(pageNum).clone().appendTo("#divPrintContainer"); 

我此行的解釋如下:向上

  1. 搜索通過DOM樹來獲得對 表的引用包含複選框
  2. 切換名爲pageNum的類即第一次添加它,第二次刪除它等
  3. 複製表到一個新的DOM元素
  4. 追加到容器

所以,當你點擊全選,就會切換在最近的每個文本框的表類,但從來沒有新的元素切換這一關。當您第二次選擇它時,它將刪除該類,然後將其複製到容器中。

簡單,行更改爲以下:

$(this).closest('table').clone().addClass(pageNum).appendTo("#divPrintContainer"); 
+0

謝謝你。與您的upadte表複製到#divPrintContainer不會發生。 – BumbleBee

+0

在你的小提琴你的div被稱爲divTestPrintContainer - 請參閱修正小提琴:http://jsfiddle.net/w7F3r/ – devrooms

+0

謝謝。這樣可行。 – BumbleBee

1

要調用內if ($("#dvReports #checkAll").is(':checked')) {

結果toggleClass,檢查但不取消選中時toggleClass只調用。爲此,請點擊1,toggleClass添加該類。點擊2,取消選中複選框,不對類進行更改。點擊3,複選框被選中,toggleClass僅被第二次調用,刪除類。

我相信你想要的是每次被點擊時,不僅當檢查調用它。將它從if中刪除。

+0

點擊1,我需要添加類並將表移動到一個div。點擊2時,複選框未選中,我需要從div中提取複製的表格。 – BumbleBee

+0

也許你打算在克隆而不是原始的元素上調用'toggleClass'(或'addClass')?在克隆前,您目前在原始元素上調用'toggleClass'。 –

相關問題