jcr*_*ley 1 javascript jquery settimeout fadeout
我试图用jQuery从页面中删除一个对象.我也想动画删除.目标是使元素fadeOut(),等待一秒,然后删除().但它似乎拒绝等待删除元素,即使我在setTimeout()函数中使用它.如何创建元素fadeOut(),然后删除()它?
$("button").click(function() {
$(this).fadeOut();
setTimeout(function() { $(this).remove();}, 1000);
});
Run Code Online (Sandbox Code Playgroud)
仔细阅读手册:http: //api.jquery.com/fadeOut/
fadeOut()方法有一个在fadeOut完成后调用的回调.要使用它:
$("button").click(function() {
$(this).fadeOut(function() { $(this).remove();});
});
Run Code Online (Sandbox Code Playgroud)
在删除元素之前,应该没有理由在fadeOut完成后等待一秒,因为元素在删除时将不可见.
在你的超时功能中,this不是你想象的那样 - 它实际上是全局window对象.
无论如何(没有双关语意)你应该使用"完成回调":
$("button").click(function() {
$(this).fadeOut('slow', function() {
$(this).remove();
});
});
Run Code Online (Sandbox Code Playgroud)
从来没有,混合setTimeout和动画队列.它的优良交错两个,即具有完成回调启动一个定时器,或有一个计时器启动动画,但它从来没有确定,假定你可以同时启动一个1000毫秒的动画和1000ms的定时器,并让它们完全在同一时间.
编辑固定代码 - 不需要self完成回调,我还在考虑setTimeout,this当我写的时候!
| 归档时间: |
|
| 查看次数: |
313 次 |
| 最近记录: |