Javascript tr点击事件和新创建的行(更新css)

Javascript tr点击事件和新创建的行(更新css),javascript,jquery,css,html-table,Javascript,Jquery,Css,Html Table,我对网络开发非常陌生。我目前正在使用jquery插件创建一个动态表,用户可以在其中添加和删除行。单击后,我无法更改新创建的行的背景色。它可以很好地处理用html硬编码的行。以下是相关代码: $(document).ready( function() { $('table.tablesorter td').click( function (event) { $(this).parent('tr').toggleClas

我对网络开发非常陌生。我目前正在使用jquery插件创建一个动态表,用户可以在其中添加和删除行。单击后,我无法更改新创建的行的背景色。它可以很好地处理用html硬编码的行。以下是相关代码:

$(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,包括:

$("#TASKTABLE").trigger("update");
$("#TASKTABLE").trigger("appendCache");

委派可单击的
td
元素,如:

$('table.tablesorter').on('click','td', function(){
使用jQuery 1.7中的
.on()

从jQuery 1.7开始,.on()方法提供附加事件>处理程序所需的所有功能。有关从旧的jQuery事件方法转换的帮助,请参见.bind()、.delegate()、>和.live()。要删除与.on()绑定的事件,请参阅.off()。要附加一个只运行>一次然后删除自身的事件,请参见.one()


委派可单击的
td
元素,如:

$('table.tablesorter').on('click','td', function(){
使用jQuery 1.7中的
.on()

从jQuery 1.7开始,.on()方法提供附加事件>处理程序所需的所有功能。有关从旧的jQuery事件方法转换的帮助,请参见.bind()、.delegate()、>和.live()。要删除与.on()绑定的事件,请参阅.off()。要附加一个只运行>一次然后删除自身的事件,请参见.one()

试试这个:

$(newrow).toggleClass('rowclick');
$(newrow).siblings().removeClass('rowclick');
试试这个:

$(newrow).toggleClass('rowclick');
$(newrow).siblings().removeClass('rowclick');

非常感谢你!!!我整天都在想这个。美元()实际上是什么意思。我有点直接进入这个项目,有0个html/javascript经验。@yalechen不客气,
$()
是返回jQuery对象的jQuery选择器,然后你可以使用jQuery方法来操作所选元素。非常感谢!!!我整天都在想这个。美元()实际上是什么意思。我有点直接进入这个项目,拥有0 html/javascript经验。@yalechen不客气,
$()
是返回jQuery对象的jQuery选择器,然后您可以使用jQuery方法来操作所选元素。谢谢,现在效果很好。这实际上是做什么的?为什么我的上一个版本不起作用?这是一个新的jQuery方法,用于替换现在已弃用的
.live()
方法。它实际做的是通过将单击事件委托给现有和未来创建的
td
元素。在这里阅读更多:谢谢,现在效果很好。这实际上是做什么的?为什么我的上一个版本不起作用?这是一个新的jQuery方法,用于替换现在已弃用的
.live()
方法。它实际做的是通过将单击事件委托给现有和未来创建的
td
元素。请在此处阅读更多信息: