0

我正在创建一个动态表,并希望通过单击<a>具有动态创建的 id 的元素来显示一个表单。我能够显示表单的唯一方法是将点击事件中的选择器设置为表 ID(#table 2),但我不明白为什么我不能更具体地做到这一点。

$.each(json, function (index, value) {
    var posttimestamp = value.Post_timestamp;
    var replytimestamp = value.Reply_timestamp;
    var topic = value.Topic;
    var post_txt = value.Post_txt;
    var reply_txt = value.Reply_txt;
    var species = value.Species;
    var postuser = value.Post_User;
    var replyuser = value.Reply_User;
    var medcond = value.MedCondPrimary;
    var breed = value.Breed;

    if (value.Post_timestamp != check) {
        var newpost = 'y';
    } else {
        var oldpost = 'y';
    }


    if (newpost) {
        $('#table2').append('<tr><td   id="posttopic" colspan="2"><a href="forum24.php"           id=' + posttimestamp + '>' + topic + '</a></td><td></td></tr><tr><td id=' + "post" + posttimestamp + '>' + posttimestamp + '</td><td  id=' + "post" + posttimestamp + 'colspan="3">' + post_txt + '</td><td>' + postuser + '</td><td>' + breed + '</td></tr>');
    }

    $('#' + posttimestamp).click(function (e) {
        e.preventDefault();
        $('div.form').show();
    }
4

2 回答 2

0

尝试改变它

$('#' + posttimestamp).click(function(e) {...})

$('#' + posttimestamp).live("click", function(e) {...})

您可能会遇到 jQuery 尝试将 click 事件绑定到.append()DOM 中尚不存在的 -ed 表格单元格的情况。使用.live()会将点击事件绑定到现在或将来存在的元素。

之所以使用表 ID 作为选择器,是因为当你调用.click().

于 2013-05-27T04:06:14.580 回答
0

试试jQuery.live()

 $('#' + posttimestamp).live("click", function (e) {
     e.preventDefault();
     $('div.form').show();
 }
于 2013-05-27T04:07:34.723 回答