jQuery Ajax .ajaxSuccess()事件没有触发

时间:2012-09-07 20:43:05

标签: javascript javascript-events jquery

我有一个原生的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.
    });
});

1 个答案:

答案 0 :(得分:1)

ajaxSuccess()的基本理念是:

  

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

据我所知documentation,您只能将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);
    });
});