我對web開發很陌生。我目前使用tablesorter jquery插件來創建一個動態表,用戶可以在其中添加和刪除行。我在點擊時改變新創建的行的背景顏色時遇到問題。它適用於在html中硬編碼的行。下面是相關代碼:Javascript tr用新創建的行點擊事件(更新css)
$(document).ready(
function() {
$('table.tablesorter td').click(
function (event) {
$(this).parent('tr').toggleClass('rowclick');
$(this).parent('tr').siblings().removeClass('rowclick');
});
}
)
rowclick是一個CSS類在這裏:
table.tablesorter tbody tr.rowclick td {
background-color: #8dbdd8;
}
我曾嘗試加入以下我增加了一個新的行javascript函數:
var createClickHandler =
function(newrow) {
return function(event) {
//alert(newrow.cells[0].childNodes[0].data);
newrow.toggleClass('rowclick');
newrow.siblings().removeClass('rowclick');
};
}
row.onclick = createClickHandler(row);
當我單擊新行時,警報會正確顯示行的第一列中的文本。但是,我的新行不響應css類。有人有主意嗎?提前致謝。
我還要提到了我與應用clickHandler事件之前更新的tablesorter:使用.on()
從jQuery的1.7
$('table.tablesorter').on('click','td', function(){
:
$("#TASKTABLE").trigger("update");
$("#TASKTABLE").trigger("appendCache");
謝謝,現在的偉大工程。這實際上是做什麼的?爲什麼我以前的版本沒有工作? – yalechen
這是一個較新的jQuery方法來替換現在不推薦使用的'.live()'方法。實際上,通過委託給他們點擊事件,等待現有的和未來**創建的'td'元素。閱讀更多:http://api.jquery.com/on –