我有两个功能。我需要在fTwo()之前运行fOne()。
function fOne() {
if ($('.container').width() < 300) {
$('.box').each(function(){
$(this).removeClass('largeSize').addClass('smallSize');
});
}
}
function fTwo() {
var el = $('.myElement');
$(el).each(function() {
var pcntH = el.height(),
scorH = el.parent().find('.box').outerHeight(true),
pcntT = scorH - pcntH - 5;
el.css({'position':'relative', 'top': pcntT + 'px'}).fadeIn('slow');
});
}
是否可以做这样的事情:
fOne().done(fTwo());
这是想法,但不起作用......
答案 0 :(得分:0)
如果你没有异步调用它们fOne(); fTwo();应该工作,否则有fOne(); return fTwo();
答案 1 :(得分:0)
只需使用回调函数。在
的定义中function fOne(callback) {
if ($('.container').width() < 300) {
$('.box').each(function(){
$(this).removeClass('largeSize').addClass('smallSize');
});
}
callback();
}
然后拨打电话fOne(fTwo);
。你已经确定了。
答案 2 :(得分:0)
jQuerys when
和done
可用于执行异步操作,因为它们使用Deffereds。发送到when
的函数将被执行,只有在该函数完成后,它才会调用由done
定义的函数。
$.when( fOne() ).done( function() { fTwo(); } );
您可以在api.jquery.com
查看