3

我有一个本机 javascript 对象,我想将 .ajaxSuccess 回调分配给它。这样做的目的是因为我希望我的数据模型在 ajax 调用成功后更新,但我不想让我的数据模型对整个 javascript 文件都是全局的。是的,我检查以确保我的 jQuery 包含在我的脚本文件之前。

这是代码:

$("#formButtonAddLink").click(function() {
    $.ajax({
        type: "POST",
        url: "ajax/addlink",
        data: {content: $("#formInputLinkContent").val(), subject: $("#formInputLinkSubject").val()},
        dataType: "json",
        error: function() {
            alert("An ajax error occured adding link")
        }
    });
    return false; //prevents html form submit
})

$(document).ready(function(){
    var links = new Links(20,0);
    $(links).ajaxSuccess(function() {
        console.log("Hey.")    //This does not work.
    });
    $(document).ajaxSuccess(function() {
        console.log("Document hey.")   //This shows up.
    });
});
4

1 回答 1

1

的基本思想ajaxSuccess()是:

每当 Ajax 请求成功完成时,jQuery 都会触发 ajaxSuccess 事件。此时会执行已使用 .ajaxSuccess() 方法注册的所有处理程序。

据我从文档中了解到,您只能将ajaxSuccess()事件处理程序附加到元素,而不是 JavaScript 对象。这就是为什么在将事件处理程序附加到document.

我们可以将事件处理程序附加到任何元素。

在这种情况下,如果您有类似的东西:

<div class="links"></div>

你可以这样做:

$(document).ready(function(){
    $(".links").ajaxSuccess(function() {
        console.log("Hey.")
        // use links in here:
        var links = new Links(20,0);
    });
});
于 2012-09-07T20:56:43.700 回答