javascript - 如何在 jquery 中链接这些效果?队列? promise ?

标签 javascript jquery

我有这两个未连接的函数,至少没有办法进行回调。我首先希望列表向上滑动,然后另一个向下滑动。为了使其实际工作,至少以某种方式,我添加了 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/

相关文章:

javascript - 我错过了 JS 中的某些东西吗?

jquery - 如何使用类型: "POST" in jsonp ajax call

javascript - SWFUpload ASP.Net 示例站点不工作?

javascript - Highcharts:动态(以编程方式)分配轴名称

javascript - 动态生成的脚本不起作用

jquery - 使用jquery随机显示一些东西

javascript - 修复此单选按钮 HTML 的最佳方法是什么?

jquery - 如何使用jquery将图像添加到div的顶部

jquery - 以字符串形式获取多重选择器 jQuery 对象的每个选择器

javascript - 从 Ajax 将数组数组传递给 Controller