2011-06-15 12 views
4

我希望這個JSfiddle中的簽名按鈕用複選框對列進行排序,就像它實際上完美地完成了一樣。用複選框對列進行排序。不起作用。我被卡住了

http://jsfiddle.net/littlesandra88/DSRmg/

我注意到tinySort,用於對錶進行排序庫,不能只是複選框列進行排序,所以我(在的jsfiddle或X爲visability)增加了&nbsp;那些<td>的複選框已勾選,並且可以對列進行排序。

問題

的問題是,當保存單擊在這種情況下,&nbsp;或X,應添加,點擊所以當簽名,列被正確排序。

this後瞭解到我如何添加和刪除&nbsp或X

這接縫,我認爲JQuery的找不到<label>,因爲它是一個<td>內。

如何重現問題

嘗試取消選中其中一個複選框,然後單擊簽名。現在複選框列不再正確排序。

問題

我如何保存按鈕添加&nbsp;,所以列進行排序?

更新

this有我實現tablesort的Rakesh的答案。但我仍然無法實現它的工作。

+1

看起來像它的工作我。我可以對列進行排序。 – 2011-06-15 11:37:25

+0

是的,你可以排列yhe列就好了。但是,請嘗試取消選中其中一個複選框,然後重新排序。現在它沒有正確排序了=( – 2011-06-15 11:39:27

+0

看起來不像有一個事件監聽器在用戶單擊複選框時刪除x的,你必須添加一個才能進行排序工作 – 2011-06-15 11:46:07

回答

2

我建議你使用tablesorter插件,它可以讓你選擇擁有自己的解析器邏輯進行排序。

看看代碼 - http://jsfiddle.net/srakesh/DSRmg/8/

HTML:

<td class="checkbox"> <input name="signed" type="checkbox" checked ><span class="hidden">1</span> </td> 

的Javascript:

$(document).ready(function() { 
    $("#myTable").tablesorter();    
    $('#myTable input:checkbox').click(function() { 
     var order = this.checked ? '1' : '0'; 
     $(this).next().html(order); 
     $(this).parents("table").trigger("update"); 
    }) 
}); 
+0

我試圖實現這一點,但我不斷收到錯誤'不正確形成'。這是更新的jsfiddle http://jsfiddle.net/littlesandra88/DSRmg/2/。我究竟做錯了什麼? – 2011-06-15 13:31:29

+0

更新JSFiddle http://jsfiddle.net/littlesandra88/DSRmg/4/然而,同樣的問題。 – 2011-06-15 14:00:20

+0

@Sandra請參閱代碼的更新版本 - http://jsfiddle.net/srakesh/DSRmg/8/ – 2011-06-16 04:14:50

0

缺少一個分號:

$('#myTable input:checkbox').click(function() { 
    var order = this.checked ? '1' : '0'; 
    $(this).next().html(order); 
    $(this).parents("table").trigger("update"); 
}); //try putting a semicolon here