作者Aone (Aone)
看板Ajax
标题[问题] 请问这样写 jQuery 为何出错 附原始码
时间Fri Apr 27 16:01:04 2012
小弟在试作一个简单的广告轮播动态效果
问题点有用前景色 highlight
html 如下:
<div id="block">
<ul>
<li><a href="#"><img src="image/j.jpg" /></a></li>
<li><a href="#"><img src="image/q.jpg" /></a></li>
<li><a href="#"><img src="image/u.jpg" /></a></li>
<li><a href="#"><img src="image/e.jpg" /></a></li>
<li><a href="#"><img src="image/r.jpg" /></a></li>
<li><a href="#"><img src="image/y.jpg" /></a></li>
</ul>
</div>
jQuery 如下:
$(function(){
var $block = $('#block'),
$ul = $block.find('ul'),
_liHtml = $ul.html(),
_width = $block.width(),
_animateSpeed = 1000,
timer, speed = 400,
_index = 0,
_hover = false;
$ul.html( _liHtml + _liHtml );
var $li = $ul.find('li');
timer = setTimeout(move, speed);
function move(){
_index = (_index + 1) % $li.length;
$ul.animate({
left: _index * _width * -1
}, _animateSpeed, function(){
if(_index == $li.length / 2){
$ul.css('left', 0);
_index = 0;
}
※
});
timer = setTimeout(move, speed);
}
});
请问红色那行计时器为何不能放在他现在的地方
而必须放在 if 条件式後面
※ 处
不是都是一样执行完 animate 之後才再次启动 move 吗?
谢谢指教 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.53.223
1F:推 mrbigmouth:後在红色的地方是跟animate同时启动 04/27 16:09
2F:→ mrbigmouth:放在animate的callback会在animate动完之後才开始计时 04/27 16:10
3F:→ mrbigmouth:简单的说 animate是非阻塞非同步的 不会等动完之後才 04/27 16:11
4F:→ mrbigmouth:执行之後的程式码 跟ajax一样 04/27 16:11
5F:推 saluyi:我记得animate有一个option就是设定animate完之後要做的事 04/27 16:43
6F:→ saluyi:上jQuery官网查一下就有了~~ 04/27 16:44
7F:→ Aone:谢谢 原来是会同时启动的关系 @@ 04/27 19:12