我正在试图弄清楚如何链接自定义函数:
我有这样的事情:
show_loader(0, function() {
open_box($target_open, event.value, '.wide-col', function() {
hide_loader(function() {
scroll_to_content($target_open, function() {
});
$(this).dequeue();
});
$(this).dequeue();
});
$(this).dequeue();
});
这些函数的回调实现如下:
function show_loader(position, callback) {
$ajaxSpinner.fadeIn();
status = "loading"; //some non-jQuery stuff
if (callback) $ajaxSpinner.queue( function() {callback()} );
}
你可以看到我正在尝试做的基本思路:在函数内的动画完成后执行我的函数。
我认为我的代码不对。顺序应该是:show loader,open box,hide loader,然后最后滚动到内容。相反,看起来这就是我测试它时实际发生的事情:show loader,hide loader,滚动到内容,然后打开框。
如何正确排列函数调用顺序?我是否在适当的背景下使用了keyowrd“this”?
答案 0 :(得分:1)
你可以看到我正在尝试做的基本思路:在函数内的动画完成后执行我的函数。
如果你使用jQuery的标准动画函数,你应该可以直接将回调传递给它们。 E.g:
function show_loader(position, callback) {
$ajaxSpinner.fadeIn(callback);
status = "loading"; //some non-jQuery stuff
}
查看http://api.jquery.com并了解它们的工作原理。
<强>更新强>
Here is an example that produces the desired result using queue
。我正在使用一个更新的表单,其中下一个要执行的函数作为参数传递给回调。 也许你对做错了。 编辑:我尝试了你的代码,它运行正常。我猜您在其他功能中没有正确使用dequeue
queue
。