Javascript 在使用JQuery加载另一个函数时执行该函数
我有两个函数,我想逐个加载它们。它们是这样的:Javascript 在使用JQuery加载另一个函数时执行该函数,javascript,jquery,html,Javascript,Jquery,Html,我有两个函数,我想逐个加载它们。它们是这样的: <script> //first function load_ajax_select(id); //second fucntion fadeIn_that_div(); </script> function load_ajax_select() { $.get("/some/url", function(stuff) { $("some selector").html
<script>
//first function
load_ajax_select(id);
//second fucntion
fadeIn_that_div();
</script>
function load_ajax_select() {
$.get("/some/url", function(stuff) {
$("some selector").html(stuff);
});
}
//第一功能
加载\u ajax\u选择(id);
//第二功能
fadeIn_the_div();
我想知道在加载第一个函数后,如何完成第二个函数
谢谢。让我们假设
load\u ajax\u select
如下所示:
<script>
//first function
load_ajax_select(id);
//second fucntion
fadeIn_that_div();
</script>
function load_ajax_select() {
$.get("/some/url", function(stuff) {
$("some selector").html(stuff);
});
}
或
或者类似的,可能还有其他的逻辑。为了让其他事情在完成时能够得到通知,它能做的最灵活的事情就是返回一个承诺。根据它所做的,可能最简单的方法是从$返回它已经拥有的承诺。get
:
function load_ajax_select() {
return $.get("/some/url", function(stuff) {
$("some selector").html(stuff);
});
}
…或者有时创建自己的:
function load_ajax_select() {
var d = $.Deferred();
$("some selector").load("/some/url", function() {
d.resolve();
});
return d.promise();
}
…虽然通常情况下,如果您已经有了一个,创建自己的是一种反模式
不关心结果何时发生的代码可以忽略返回值。但是您需要知道的代码可以使用它:
load_ajax_select().then(fadeIn_that_div);
或者有时候你可能需要
load_ajax_select().then(function() { fadeIn_that_div(); });
…如果由于某种原因无法通过
直接调用fadeIn\u div
,则
在第一个$的完成回调中移动第二个函数调用。ajax
@Tushar第二个函数将在一个页面中加载。但是第一个用于另一个页面。我不能这样做。使用flag,在readyflag=true
,在调用checkif(flag)
之前,先在complete
中加载第二个ajaxflag=false
。读字里行间的话。@Tushar很折磨你。它起作用了欢迎,很乐意帮忙:)