从动态添加的按钮触发事件

时间:2017-02-26 15:50:21

标签: javascript jquery html

当我想通过动态添加按钮触发事件时,我遇到了一个问题。

<h1>Image attributes</h1>
<table id="imtbl" border="1" cellpadding="0" cellspacing="0">
    <tr>
       <th>SOURCE</th>
       <th>ALT</th>
       <th>TITLE</th>
    </tr>
</table>
<input type="button" id="imagetg" value="get line" />

以下是我正在使用的HTML ...

$("#imagetg").click(function() {
    var str = $("#t").val();

    alert(str);


    var srres = str.match(/<img(\"[^\"]*\"|'[^']*'|[^'\">])*>/gi);
    alert(srres.length);
    for (i = 0; i < srres.length; i++) {
         var atim0 = $("" + srres[i]).attr("src");
      var atim = $("" + srres[i]).attr("alt");
       var atim1 ="  "+ $("" + srres[i]).attr("title");
      $("#imtbl").append("<tr><td align='center' width='150'>"+atim0+"</td><td align='center' width='150'>"+atim+"</td><td align='center' width='150'>"+atim1+"</td><td><input type='button' value='UPDATE' class='upbtn' id='"+i+"'/></td></tr>");
    }
  });

这是动态添加行的脚本。

$(".updt").click(function(){
        var varid= $(this).attr("id");
        alert("Hello"+varid);
    });

这是我点击“更新”按钮时要触发的事件。但它没有被触发,有人可以帮助我解决这个问题,这会有所帮助。 谢谢。

2 个答案:

答案 0 :(得分:0)

试试这个

$("#imagetg").click(function() {
var str = $("#t").val();

alert(str);


var srres = str.match(/<img(\"[^\"]*\"|'[^']*'|[^'\">])*>/gi);
alert(srres.length);
for (i = 0; i < srres.length; i++) {
     var atim0 = $("" + srres[i]).attr("src");
     var atim = $("" + srres[i]).attr("alt");
     var atim1 ="  "+ $("" + srres[i]).attr("title");
    $("#imtbl").append("<tr><td align='center' width='150'>"+atim0+"</td><td align='center' width='150'>"+atim+"</td><td align='center' width='150'>"+atim1+"</td><td><input type='button' value='UPDATE' class='upbtn' id='"+i+"'/></td></tr>")
}
$(".updt").click(function(){
    var varid= $(this).attr("id");
    alert("Hello"+varid);
});});

答案 1 :(得分:0)

非常感谢你的帮助......

我得到了一个解决方案......现在问题已经解决了。

我们需要使用的脚本是

$("#imtbl").on('click','.upbtn',function(){
           var varid= $(this).attr("id");
            alert(varid);
            });

这将解决问题。