Javascript jQuery Ajax.ajaxSuccess()事件未触发

Javascript jQuery Ajax.ajaxSuccess()事件未触发,javascript,javascript-events,jquery,Javascript,Javascript Events,Jquery,我有一个本机javascript对象,我想将.ajaxSuccess回调分配给它。这是因为我希望在ajax调用成功后更新数据模型,但我不希望使数据模型成为整个javascript文件的全局模型。是的,我检查以确保在脚本文件之前包含jQuery 代码如下: $("#formButtonAddLink").click(function() { $.ajax({ type: "POST", url: "ajax/addlink", data: {

我有一个本机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.
    });
});

ajaxSuccess()
的基本思想是:

只要Ajax请求成功完成,jQuery就会触发 ajaxSuccess事件。已向注册的任何和所有处理程序 此时将执行.ajaxSuccess()方法

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

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

在这种情况下,如果您有以下类似情况:

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

这是完全无效的。你想要的结果到底是什么?如果我没记错的话,调用
ajaxSuccess
的jquery对象没有实际效果,那么为什么不直接使用
document
或其他任何东西呢。@JamesMontagne哪些部分无效?所需的结果是my links对象接收.ajaxSuccess回调。实际上,它将做一些比console.log更有用的事情。我希望我的links对象在ajax调用后更新自己,这就是为什么我不能使用任何ol'DOM对象。您调用的对象没有“接收”任何内容。如果您想在回调中使用
links
变量,您可以这样做。因此说“jQuery(object),object:A plain object to wrapp in A jQuery object”的api在这种情况下不起作用?更新了我的注释。请参阅链接。但是你对ajaxSuccess的整体理解似乎是不正确的。好吧,这是有道理的。我希望将回调绑定到对象本身,但我想这是不可能的。所以我将它绑定到一个相关的元素,然后从那里处理事情。谢谢从jQuery1.9开始,jQuery全局Ajax事件的所有处理程序,包括使用.ajaxSuccess()方法添加的处理程序,都必须附加到文档中。
$(document).ready(function(){
    $(".links").ajaxSuccess(function() {
        console.log("Hey.")
        // use links in here:
        var links = new Links(20,0);
    });
});