javascript - JQuery 回调到先前定义的函数

标签 javascript jquery

我仍在学习 JQuery(因此学习了一点 JavaScript),但我似乎无法找到如何在回调中使用先前定义的函数。

假设我有:

<script>
$(document).ready(function() {

function ajax_start() {
                      alert("starting...");
                      }

});
</script>

我希望在另一个函数中使用它,例如:

<script>
$(document).ready(function() {

$.ajax({
        beforeSend: ajax_start(),
        url: "insert_part.php",
        type:"POST",
        data: "customer="+customer
  });
});
</script>

这是正确的吗? (我假设不是,因为它不是......)进行回调的正确方法是什么?

最佳答案

关闭。

$(document).ready(function() {
    
    function ajax_start() {
        alert("starting...");
    }

    $.ajax({
        beforeSend: ajax_start, // <== remove the parens
        url: "insert_part.php",
        type:"POST",
        data: "customer="+customer // <== as Skilldrick pointed out,
                                   //     remove the trailing comma as well
    });
});

你需要这样做是因为

  • ajax_start() 通过执行名为 ajax_start 的函数计算返回 的值,但是
  • ajax_start 的计算结果为 the function itself .

编辑回复:OP 评论

"how would I include a second function in the callback. Something like- beforesend: ajax_start,other_function (obv. not exactly like that)?"

有几种方法可以做到这一点。使用匿名函数组合它们:

$.ajax({
    // if you need the arguments passed to the callback
    beforeSend: function (xhr, settings) {
        ajax_start();
        other_function();
    },
    url: "insert_part.php",
    type:"POST",
    data: "customer="+customer
});

或者只声明一个命名函数来执行您想要的操作,然后使用它:

function combined_function(xhr, settings) {
    ajax_start();
    other_function();
}

$.ajax({
    beforeSend: combined_function,
    url: "insert_part.php",
    type:"POST",
    data: "customer="+customer
});

关于javascript - JQuery 回调到先前定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4691792/

相关文章:

javascript - JSONP 和框架7

javascript - 如何使用 Javascript 清除基于复选框的文本框

javascript - jQuery:需要一些帮助..animate 的回调函数不起作用

javascript - id 的 jquery/javascript 选择器以特定文本开始并获得它结束的最高值

javascript - jquery/javascript if else 语句不起作用,检测到空文本框

javascript - "You did not select a file to upload. "使用ajax上传图片时出现这个错误

javascript - 如何使用 UndoManager 确定文档是否有未保存的更改

javascript - jQuery/Ajax 提交文件到 url localhost

javascript - 如何使用 javascript 获取浏览器当前的语言环境首选项?

javascript - 如何在 JavaScript 中获取 CPU 使用率?