Javascript JQuery回调到以前定义的函数
我仍在学习JQuery(并因此学习了一点JavaScript),但我似乎不知道如何在回调中使用先前定义的函数 假设我有:Javascript JQuery回调到以前定义的函数,javascript,jquery,Javascript,Jquery,我仍在学习JQuery(并因此学习了一点JavaScript),但我似乎不知道如何在回调中使用先前定义的函数 假设我有: <script> $(document).ready(function() { function ajax_start() { alert("starting..."); } }); </script> $(文档).ready(函数(){ 函数ajax_st
<script>
$(document).ready(function() {
function ajax_start() {
alert("starting...");
}
});
</script>
$(文档).ready(函数(){
函数ajax_start(){
警报(“启动…”);
}
});
我希望在另一个功能中使用它,例如:
<script>
$(document).ready(function() {
$.ajax({
beforeSend: ajax_start(),
url: "insert_part.php",
type:"POST",
data: "customer="+customer
});
});
</script>
$(文档).ready(函数(){
$.ajax({
发送前:ajax\u start(),
url:“insert_part.php”,
类型:“POST”,
数据:“客户=”+客户
});
});
这是正确的吗?(我假设不是因为它不…)回调的正确方式是什么?关闭
$(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
});
});
或者只声明一个完成所需操作的命名函数,然后使用它:
function combined_function(xhr, settings) {
ajax_start();
other_function();
}
$.ajax({
beforeSend: combined_function,
url: "insert_part.php",
type:"POST",
data: "customer="+customer
});
将
beforeSend
的值更改为ajax\u start
。换句话说,去掉括号
用括号调用
ajax\u start()
并将beforeSend
设置为ajax\u start()
的返回值(在本例中,我认为这将是未定义的
)。只需删除括号,然后引用“函数”对象。()调用该函数,以便传递ajax\u start的返回值
$.ajax({
beforeSend: ajax_start,
url: "insert_part.php",
type:"POST",
data: "customer="+customer,
});
});
结尾的
,
可能会在某些浏览器中造成问题。@Skilldrick:错过了(现在还早)。谢谢,修正了。@mattball关于括号的问题,如果我在一些通用脚本中调用函数,例如ajax\u start;和ajax_start();“你的行为会和你提到的一样吗?”Alex区别在于引用和调用。在$.ajax中,您的意思是“在发送之前使用ajax\u start
函数”。如果你想叫它,你可以用帕伦斯。更像是“我想现在调用ajax\u start
函数”。您还可以通过编写:beforeSend:function(){alert(“仅在此处使用,短代码”)}来使用“匿名”函数。
$.ajax({
beforeSend: ajax_start,
url: "insert_part.php",
type:"POST",
data: "customer="+customer,
});
});