Javascript jQuery下拉列表未触发删除按钮

Javascript jQuery下拉列表未触发删除按钮,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,在我的小实践项目中,我有一个带有删除按钮的下拉列表: function getMessages() { $.ajax({ type: "POST", url: "/Message/GetMessageMethod", contentType: "application/json; charset=utf-8", datatype: "json", success

在我的小实践项目中,我有一个带有删除按钮的下拉列表:

function getMessages() {
        $.ajax({
            type: "POST",
            url: "/Message/GetMessageMethod",
            contentType: "application/json; charset=utf-8",
            datatype: "json",
            success: function(data) {
                var jsonData = $.parseJSON(data);
                var newHtml = "<table style='width: 100%;'class='table-hover'><tr><th>Message</th><th>Date Posted</th><th>Posted by</th></tr>";
                for (var i = 0; i < jsonData.length; i++) {
                    newHtml += "<tr><td>" + jsonData[i].message + "</td><td>" + jsonData[i].date + " - " + jsonData[i].time + "</td><td>" + jsonData[i].name + "</td><td><div class='btn-group'>"+
                    "<a class='btn dropdown-toggle' data-toggle='dropdown' href='#'> Actions " +
                        "<span class='caret'></span></a>" +
                        "<ul class='dropdown-menu' role='menu'>" +
                        "<li role='presentation'><input type='button' role='menuitem' value='Delete' class='btn btn-danger delMsg'/></li>" +
                        "</ul></div></td></tr>";
                }
                newHtml += "<table>";
                $('#txfMessage').html(newHtml);
            }
        });
    };
我可能做错了什么,从昨天起我就一直在忙这个,但找不到任何东西。。。救命啊!
提前谢谢你

由于delete按钮是在AJAX调用之后创建的,因此“on”方法不会将事件附加到它。你可以用这个方法。它将考虑附加方法后创建的元素


编辑:顺便说一下,这取决于JQuery版本<代码>实时仍然有效。如果必须在上使用
,请正确使用它,就像Pierre Granger和Jamie Dunstan指出的那样。

因为删除按钮是在AJAX调用之后创建的,所以“on”方法不会将事件附加到它。你可以用这个方法。它将考虑附加方法后创建的元素


编辑:顺便说一下,这取决于JQuery版本<代码>实时
仍然有效。如果必须在上使用
,请正确使用它,就像Pierre Granger和Jamie Dunstan指出的那样。

因为删除按钮是在AJAX调用之后创建的,所以“on”方法不会将事件附加到它。你可以用这个方法。它将考虑附加方法后创建的元素


编辑:顺便说一下,这取决于JQuery版本<代码>实时
仍然有效。如果必须在上使用
,请正确使用它,就像Pierre Granger和Jamie Dunstan指出的那样。

因为删除按钮是在AJAX调用之后创建的,所以“on”方法不会将事件附加到它。你可以用这个方法。它将考虑附加方法后创建的元素


编辑:顺便说一下,这取决于JQuery版本<代码>实时
仍然有效。如果您必须在上使用
,请正确使用它,就像皮埃尔·格兰杰和杰米·邓斯坦指出的那样。

您必须执行以下操作:

$('#txfMessage').html(newHtml);
$('.delMsg').on('click', function () {
            $.ajax({
                type: "POST",
                url: "/Message/DeleteMessage",
                contenetType: "application/json; charset=utf-8",
                datatype: "json",
                cache: false,
                data: JSON.stringify({
                    id: $('#txfMessage').val()
                }),
                success: function() {
                    getMessages();
                }
            });
        });

i、 e.每次添加新的html元素时进行绑定,或者像其他答案一样使用事件委派。

您必须执行以下操作:

$('#txfMessage').html(newHtml);
$('.delMsg').on('click', function () {
            $.ajax({
                type: "POST",
                url: "/Message/DeleteMessage",
                contenetType: "application/json; charset=utf-8",
                datatype: "json",
                cache: false,
                data: JSON.stringify({
                    id: $('#txfMessage').val()
                }),
                success: function() {
                    getMessages();
                }
            });
        });

i、 e.每次添加新的html元素时进行绑定,或者像其他答案一样使用事件委派。

您必须执行以下操作:

$('#txfMessage').html(newHtml);
$('.delMsg').on('click', function () {
            $.ajax({
                type: "POST",
                url: "/Message/DeleteMessage",
                contenetType: "application/json; charset=utf-8",
                datatype: "json",
                cache: false,
                data: JSON.stringify({
                    id: $('#txfMessage').val()
                }),
                success: function() {
                    getMessages();
                }
            });
        });

i、 e.每次添加新的html元素时进行绑定,或者像其他答案一样使用事件委派。

您必须执行以下操作:

$('#txfMessage').html(newHtml);
$('.delMsg').on('click', function () {
            $.ajax({
                type: "POST",
                url: "/Message/DeleteMessage",
                contenetType: "application/json; charset=utf-8",
                datatype: "json",
                cache: false,
                data: JSON.stringify({
                    id: $('#txfMessage').val()
                }),
                success: function() {
                    getMessages();
                }
            });
        });

i、 e.每次附加新html元素时都要绑定,或者像其他答案一样使用事件委派。

您需要使用jQuery事件委派,因为您试图将事件附加到DOM中尚不存在的元素

更改:

$('.delMsg').on('click', function () {
致:


查看以了解更多信息。

您需要使用jQuery事件委派,因为您正在尝试将事件附加到DOM中尚不存在的元素

更改:

$('.delMsg').on('click', function () {
致:


查看以了解更多信息。

您需要使用jQuery事件委派,因为您正在尝试将事件附加到DOM中尚不存在的元素

更改:

$('.delMsg').on('click', function () {
致:


查看以了解更多信息。

您需要使用jQuery事件委派,因为您正在尝试将事件附加到DOM中尚不存在的元素

更改:

$('.delMsg').on('click', function () {
致:



查看以了解更多信息。

根据您的jQuery版本,最好使用.on而不是live,但使用以下语法:jQuery(document).on('click','.delMsg',function(){})。从jQuery 1.7开始,live()已被弃用。您应该使用.on(),就像@PierreGranger的精彩评论一样。@Stepanian。。。由于我使用的是
jquery-2.1.0.js
live
将不起作用,我同意在
上使用
,具体取决于您的jquery版本,最好使用.on而不是live,但使用以下语法:jquery(document).on('click','.delMsg',function(){})。从jQuery 1.7开始,live()已被弃用。您应该使用.on(),就像@PierreGranger的精彩评论一样。@Stepanian。。。由于我使用的是
jquery-2.1.0.js
live
将不起作用,我同意在
上使用
,具体取决于您的jquery版本,最好使用.on而不是live,但使用以下语法:jquery(document).on('click','.delMsg',function(){})。从jQuery 1.7开始,live()已被弃用。您应该使用.on(),就像@PierreGranger的精彩评论一样。@Stepanian。。。由于我使用的是
jquery-2.1.0.js
live
将不起作用,我同意在
上使用
,具体取决于您的jquery版本,最好使用.on而不是live,但使用以下语法:jquery(document).on('click','.delMsg',function(){})。从jQuery 1.7开始,live()已被弃用。您应该使用.on(),就像@PierreGranger的精彩评论一样。@Stepanian。。。由于我使用的是
jquery-2.1.0.js
live
将不起作用,我同意在
上使用
,你可以试试jquery(document).在('click','.delMsg',函数(而不是你的('.delMsg')。在哪个jquery lib.版本上使用…@Pierre Granger…谢谢,它现在启动了..哇!@Ananti…我正在使用jquery-2.1.0.jsIt是“新的”.live with jQuey 1.7+的语法。它允许绑定第一次绑定后创建的每个新DOM元素。有关更多信息,请参阅此页面:能否尝试jQuery(文档)。在('click','.delMsg',函数上(而不是('.delMsg')).on?wich jquery lib..version u have using..@Pierre Granger…谢谢,它现在启动了..哇!@Ananti…我正在使用jquery-2.1.0.jsIt是.live with jQuey 1.7+的“新”语法。它允许绑定第一次绑定后创建的每个新DOM元素。有关更多信息,请参阅本页:可以尝试jquery(document)。on('click','delMsg',函数(而不是你的('.delMsg')。在?wich jquery lib..version u已经使用..?@Pierre Granger…谢谢,它现在启动了..哇!@Ananti…我使用的是jquery-2.1.0.jsIt。这是新的语法。使用jQuey 1.7+。它允许绑定第一次绑定后创建的每个新DOM元素。有关详细信息,请参阅本页。)