表行单击侦听器停止工作

时间:2014-08-10 21:55:53

标签: javascript jquery

我使用以下函数动态地向表中添加行。在一行中单击该表消失,并生成另一个div并动态填充。这一切都在2个小时前完美地工作,突然间没有我改变它停止的任何代码。我不确定以下代码是否足以让某人给我一个答案,但有没有人看到任何特殊原因这会突然停止工作?

var setupProjectListTable = function (ipProject, table, tableContainer) {
    $('#' + table + ' tr').hover(function() {
        $(this).addClass('hover');
    }, function() {
        $(this).removeClass('hover');
    });
    var title             = ipProject.getTitle();
    var desc              = ipProject.getDesc();
    var applicableDegrees = ipProject.getApplicableDegreeList();
    var keywordList       = ipProject.getKeywordList();
    $('#' + table + ' tbody').append(
        '<tr id = "' + title             + '">'    +
        '<td>'       + title             + '</td>' +
        '<td>'       + desc              + '</td>' +
        '<td>'       + applicableDegrees + '</td>' +
        '<td>'       + keywordList       + '</td></tr>'
    );
    $("#" + title).click( function(e) {
        e.preventDefault();
        $('#' + tableContainer).hide();
        generateProjectDetails(ipProject);
    });
};

1 个答案:

答案 0 :(得分:1)

很简单。 click()仅影响现有元素,但不影响添加的元素。

所以请使用on()

$("tbody").on('click', '#' + title, function(e) {
    e.preventDefault();
    $('#' + tableContainer).hide();
    generateProjectDetails(ipProject);
});