我有这两个未连接的函数,至少没有办法进行回调。我首先希望列表向上滑动,然后另一个向下滑动。为了使其实际工作,至少以某种方式,我添加了 delay()
.
我无法制作 fsFiddle,因为代码太复杂并且所有 <a>
有一个href
在其中,但您可以在这里看到工作示例:http://liebdich.biz/ .
这里的工作是什么以及如何进行:queue
, promise
?
$('a').click(function(e){
e.preventDefault();
$(this).parent().find('ul').delay(500).slideDown(500);
$('a').removeClass('bold');
$(this).addClass('bold');
if ($(this).is('ul ul a')) {
return;
} else {
$('a').not(this).parent().find('ul').slideUp(500);
}
});
抱歉,但我无法制作 jsFiddle,因为所有 <a>
在导航中有一个href
.
最佳答案
这将是使用 Promise 对象以避免重复回调的合适位置:
$('a').click(function (e) {
e.preventDefault();
var $this = $(this);
$('a').removeClass('bold');
$this.addClass('bold');
if ($this.is('ul ul a')) {
$this.parent().find('ul').slideDown(500);
return;
} else {
$('a').not(this).parent().find('ul').slideUp(500).promise().done(function(){
$this.parent().find('ul').slideDown(500);
});
}
});
关于javascript - 如何在 jquery 中链接这些效果?队列? promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19502353/