动态按钮没有触发

时间:2013-04-05 16:21:30

标签: jquery

我正在使用jQuery生成一些包含按钮的html。出于某种原因,我无法为生成的按钮触发按钮事件。

当我查看源代码时,生成的html看起来很好......我也查看了Firebug,我没有看到任何错误......按钮点击事件没有被动态生成按钮触发。

非常感谢任何帮助。

这是我的代码:

$(document).ready(function () {

    $("#btnSearch).click(function () {
         var html = "";
         html += "<tr><td>Test</td></tr>";
         html += "<tr><td>Test 2</td></tr>";
         html += "<tr><td><input id="btnTest" type="button" value="Test Button" /></td></tr>";

        $(html).appendTo("#TestTable");
    });


    $("#btnTest").on("click", function () {
         alert('hey');
    });

});

我的静态HTML只是:

<table id="TestTable"></table>

3 个答案:

答案 0 :(得分:3)

$('body').on('click', '#btnTest' function () {
     alert('hey');
});

您需要阅读.on文档并了解它的效果。它与旧的.live方法不同。

答案 1 :(得分:1)

我对jquery“on”方法的工作方式知之甚少。 所以我在代码中做了一些改动,可以解决你的目的。

$(document).ready(function(){

            $("#btnSearch").click(function () {
                 var html = "";
                 html += "<tr><td>Test</td></tr>";
                 html += "<tr><td>Test 2</td></tr>";
                 html += '<tr><td><input id="btnTest" type="button" value="Test Button" onclick="myfun()"/></td></tr>';
                $(html).appendTo("#TestTable");
            });


            /*$("body").on("click",'btnTest' ,function () {
                 alert('hey');
            });
        */

        });

        function myfun()
        {alert("hey");}

答案 2 :(得分:0)

$("#btnTest").on("click", function () {
     alert('hey');
}); 

在上一个按钮(btnSearch)的点击事件功能中..请注意,如果您在搜索按钮上多次点击,您有几个btnTest ...正常吗?