• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

jquery手风琴效果有几处不解之处

$(function() {
        var Accordion = function(el, multiple) {
                this.el = el || {};
                this.multiple = multiple || false;


                // Variables privadas
                var links = this.el.find('.link');
                // Evento
                links.on('click', {el: this.el, multiple: this.multiple}, this.dropdown)
        }


        Accordion.prototype.dropdown = function(e) {
                var $el = e.data.el;
                        $this = $(this),
                        $next = $this.next();


                $next.slideToggle();
                $this.parent().toggleClass('open');


                if (!e.data.multiple) {
                        $el.find('.submenu').not($next).slideUp().parent().removeClass('open');
                };
        }       


        var accordion = new Accordion($('#accordion'), false);
});
有几处不明白的,麻烦大大们解答下

  • var Accordion = function(el, multiple),这个函数传的第二个参数有什么作用?
  • links.on('click', {el: this.el, multiple: this.multiple}, this.dropdown) 中间那句花括号起到什么作用了?
  • var $el = e.data.el;   e.data.el是什么意思?有啥作用
  • $el.find('.submenu').not($next).slideUp().parent().removeClass('open');  最后这句话not是干嘛用的,为啥要这样写呢
这个效果来自jquery插件库的这个插件   http://www.jq22.com/jquery-info810

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与5


  • multiple的作用是用来控制是否能展开多个列表(这里传入false,每次就只能展开一个,展开另外一个就收起前面展开的)
  • {el: this.el, multiple: this.multiple}这个就是传入到函数里面的数据data
  • 所以在这里e.data就相当于{el: this.el, multiple: this.multiple}那么e.data.el就是取得其中的值了this.el。
  • 然后就是$el.find('.submenu')这个选择器取到了id为accordion元素下面的所有class为submenu的ul,但是这里只要展开当前你点击的li下面的ul。而不需要其他的展开。所以用到了.not($next).就是非当前点击中的其他li下面的ul都隐藏。第一个问题的参数multiple就是用来判断执不执行这句代码
    if (!e.data.multiple) {
       $el.find('.submenu').not($next).slideUp().parent().removeClass('open');
    };


使用道具 举报

学习到了!

使用道具 举报

请问这个效果在手机上移动之后再点击会跳一下,怎么解决

使用道具 举报

var accordion = new Accordion($('#accordion'), false);这句是什么意思?什么情况下会走false?

使用道具 举报

请问这个手风琴效果的下拉菜单中
css代码中的.open是哪里来得,html代码中也没有啊

使用道具 举报

发新帖

发布任务需求已有1031166位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!