jQuery .unload()忽略fadeOut并跳过

问题描述:

首先,对于双重问题抱歉,但我觉得这是一个非常不同的方式。jQuery .unload()忽略fadeOut并跳过

我:

$(document).ready(function(){ 
     $('#container').fadeOut(0); 
     $('#container').fadeIn(500); 

     $(window).unload(function(){ 
      alert("Hello."); 
      $('#container').fadeOut(500); 
     }); 
    }); 

应该通过逐渐把它显示在页面上,并使其通过逐渐把它隐没卸载。但是,当我退出页面或提交其中的表单时,我只能看到该提醒,但在按下确定后,该页面就会消失并显示下一个。淡入淡出未执行。

我该如何解决这个问题?

+0

更好:'$( '#集装箱')隐藏()淡入(500 );' – 2011-03-09 17:46:41

+0

你需要的是一个同步淡出。 'fadeOut'本身不会这样做,因为它是异步的。 – 2011-03-09 17:48:02

任何调用unload的过程都需要同步。我相信fadeOut方法会调用一些异步回调。因此,当您拨打fadeOut时,会设置多个回调以供制作动画。但是,卸载不会等待。

检出this question自己构建动画。

+1

@Jordan问题是:“我该如何解决这个问题?” – 2011-03-09 17:51:07

+0

好点..现在编辑答案。 – Jordan 2011-03-09 17:52:28

+0

这应该可行,但是如何才能让动画只在需要卸载时执行?将动画放入卸载调用中会得到相同的结果。 – 2011-03-09 17:59:03

有一个[,完整]回调现在这样(1.0+):

http://api.jquery.com/fadeOut/#fadeOut-duration-complete