Javascript 单击Ajax回调后未检测到

Javascript 单击Ajax回调后未检测到,javascript,ajax,Javascript,Ajax,我目前正在测试一些相当简单的东西。在我的项目中,您可以通过表单添加listitem,并在更新的列表中立即删除它。在文件的开头,我绑定了delete click处理程序: $(".delete").bind("click", this.deleteListitem); 我认为类为“delete”的所有元素都可以在Ajax调用之前或之后删除。因此,当我添加一个类为“delete”的新listitem时,我尝试单击它,但它没有进入函数。旧的东西可以 删除功能: PanelRoadtrip.proto

我目前正在测试一些相当简单的东西。在我的项目中,您可以通过表单添加listitem,并在更新的列表中立即删除它。在文件的开头,我绑定了delete click处理程序:

$(".delete").bind("click", this.deleteListitem);
我认为类为“delete”的所有元素都可以在Ajax调用之前或之后删除。因此,当我添加一个类为“delete”的新listitem时,我尝试单击它,但它没有进入函数。旧的东西可以

删除功能:

PanelRoadtrip.prototype.deleteListitem = function(e)
{
    console.log("click");
    e.preventDefault();

    this.listId = $(event.currentTarget).parent().parent().attr("id");
    this.listItemValue = $(event.currentTarget).parent().text().split(" delete")[0];
    $.ajax({
        type: "delete",
        url: Util.api + "/roadtrip/delete/" + this.tripId + "/" + this.listId + "/" + this.listItemValue,
        dataType: "json"
    });
    //item verwijderen
    $(event.currentTarget).parent().remove();
};
是否有人对此问题有一个简单的解决方案,在Stackoverflow上搜索,但没有找到任何有效的方法


提前感谢

您可以使用
.on()

而不是

$(".delete").bind("click", this.deleteListitem);
使用

默认情况下,新添加的类为
.delete
的元素没有绑定事件,因此这种方法是将事件附加到文档或父容器,并为类为
的元素委派事件。现在删除或以后添加到DOM中。

您需要使用
on()
而不是
绑定()
更改:

$(".delete").bind("click", this.deleteListitem);

(其中,
document
是加载时DOM上
.delete
的父元素

,请阅读有关委派事件的部分:

委派事件的优点是,它们可以处理稍后添加到文档中的子元素中的事件。通过选择保证在附加委派事件处理程序时存在的元素,可以使用委派事件来避免频繁附加和删除事件处理程序


因为元素在DOM就绪时不在那里,所以应该使用
.on()

$(".delete").bind("click", this.deleteListitem);
$(document).on("click",".delete", this.deleteListitem);
$(document).on("click", ".delete", this.deleteListitem);