JQuery事件处理与数据检索通过POST

JQuery Event Handling With Data Retrieved via POST?

本文关键字:POST 检索 数据 事件处理 JQuery      更新时间:2023-09-26

我有一个加载页面,然后使用Jquery POST请求到我的。net MVC项目,以获得一些HTML放在页面上的容器中。我的问题是,我似乎无法访问该数据的html属性。例如,我POST只是获取一个带有链接的div。该链接的id为"LinkClick"。当我点击链接时,我想要一个弹出窗口:

    $("#LinkClick").click(function (e) {
        e.preventDefault();
        alert("hi");
    });

如果我把它放在我的。cshtml文件,它的工作原理,但我宁愿保持我的MVC项目之外的Javascript。我怎样才能访问这个实际上不存在于我的页面中,但不久后通过post请求存在的"LinkClick"呢?

您正在寻找通过.on()方法的事件委托。

$(document).on('click', '#LinkClick', function (e) {
    e.preventDefault();
    alert("hi");
});

注意:

注意,你不应该真正使用document作为绑定选择器。我之所以这样做是因为我不知道加载页面时最接近的父节点。为了提高效率,您应该使用在加载期间存在于页面上的新ajax创建元素的最近的parent作为绑定元素。这样,您就不会在DOM树中一直冒泡一个事件。

此外,对于jQuery 1.7+版本,您可以使用.on()方法。

对于jQuery 1.4.2 - 1.7版本,您应该使用.delegate()方法。

对于jQuery 1.4.2之前的版本,您可以使用.live()方法。但是,不建议使用方法。建议您升级您的jQuery版本,而不是使用此方法。