jQuery AJAX .ajaxSuccess()事件未触发

1cosmwyk  于 2022-11-22  发布在  jQuery
关注(0)|答案(1)|浏览(123)

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

rjee0c151#

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);
    });
});

格式

相关问题