我需要做,div"改变"等待结束,滑入div"用户名"并开始滑动,同样在悬停
演示: http://jsfiddle.net/2jHBQ/3/
<div id="avatar">
<div id="username">Madona</div>
<div id="change">Change profile</div>
</div>
$("#avatar").hover(function () {
$("#username").slideToggle(250);
$("#change").slideToggle(250);
});
答案 0 :(得分:2)
如果我理解你的问题,缩进的事件过程是:
#avatar
徘徊
#username
向下滑动并隐藏#change
显示并向上滑动#avatar
未被发现
#change
向下滑动并隐藏#username
显示并向上滑动在这种情况下,您需要两个不同的处理程序(一个用于鼠标输入,一个用于鼠标离开),因为顺序是相反的。
$("#avatar").hover(function () {
$("#username").slideToggle(250, function () {
$("#change").slideToggle(250);
});
}, function () {
$("#change").slideToggle(250, function () {
$("#username").slideToggle(250);
});
});
答案 1 :(得分:2)
你必须使用slideToggle()的回调,如果你想要它在出路上,你也需要指定hover()方法的handlerOut函数,只是以相反的顺序,类似于:
$("#avatar").hover(function () {
$("#username").slideToggle(250, function () {
$("#change").slideToggle(250);
});
}, function () {
$("#change").slideToggle(250, function () {
$("#username").slideToggle(250);
});
});
DEMO - 一个接一个地滑动 - 两种方式
答案 2 :(得分:0)
不确定我是否理解你想要的东西。试试这个?
$("#avatar").hover(function () {
$("#username").slideToggle(250,function () {
$("#change").slideToggle(250);
});
});
或者您可以使用.mouseenter()
答案 3 :(得分:0)
您可以使用.delay()方法。你可以看到它在这里工作得很好:
$("#avatar").hover(function () {
$("#username").slideToggle(250);
$("#change").delay(250).slideToggle(250);
});
您可以在此处准备API: http://api.jquery.com/delay/