我知道这已经被问了很多次,但我似乎仍然找不到答案。我的页眉中有两个单独的div,当其中一个被点击时,它会在我的页面主部分中出现一些内容。我正在尝试让它这样做:如果一个已经被点击了,新的就必须等待旧的淡出,然后再淡入。我的问题是它没有等待旧的淡出,而是立即淡入。我省略了page_2的函数,但它们是相同的,只是标识符和变量不同。
var about_me_clicked = false;
var page_2_clicked = false;
$(document).ready(function() {
$('#About_me').click(about_me_clicked_func);
$('#Page_2').click(page_2_clicked_func);
var about_me_clicked_func = function() {
if(page_2_clicked){
$.when(toggle_page_2()).done(toggle_about_me());
page_2_clicked = !page_2_clicked;
}
else toggle_about_me();
about_me_clicked = !about_me_clicked;
}
var toggle_about_me = function() {
//do some formatting....
if (!about_me_clicked) {
return $('#About_me_main').fadeIn('slow').promise();
}
else return $('#About_me_main').fadeOut('slow').promise();
我尝试仅使用.done()而不是$.when(),但那也不起作用。我还尝试为fadeIn/fadeOut使用回调/完成函数,但我无法这样做,因为有一种情况,即在页面首次加载时两者都没有被点击,所以我将无法传入另一个函数。任何帮助都将不胜感激,我已经卡在这里几天了!