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元素。有关详细信息,请参阅本页。)