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

时间:2014-05-23 20:03:57

标签: javascript jquery asp.net-mvc post

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

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

如果我把它放在我的.cshtml文件中,它可以工作,但我宁愿将Javascript保留在我的MVC项目之外。我怎样才能访问这个' LinkClick'它实际上并不存在于我的页面中,但很快就会通过帖子请求存在。

1 个答案:

答案 0 :(得分:1)

您正在通过.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版本而不是使用此方法。