为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

liujiachang 2016-08-16 21:02:46
$(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 回答

已采纳
?
荒丶謬

TA贡献7条经验 获得超5个赞

  1. multiple的作用是用来控制是否能展开多个列表(这里传入false,每次就只能展开一个,展开另外一个就收起前面展开的)

  2. {el: this.el, multiple: this.multiple}这个就是传入到函数里面的数据data

  3. 所以在这里e.data就相当于{el: this.el, multiple: this.multiple}那么e.data.el就是取得其中的值了this.el。

  4. 然后就是$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');

    };



查看完整回答
4 反对 回复 2016-08-16
?
慕无忌9493264

TA贡献1条经验 获得超0个赞

学习到了!

查看完整回答
反对 回复 2018-05-10
?
书墨谈谈

TA贡献1条经验 获得超0个赞

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


查看完整回答
反对 回复 2017-10-17
?
无意的学会

TA贡献1条经验 获得超0个赞

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

查看完整回答
反对 回复 2017-06-23
?
qq_有那種努力也做不好事_04341739

TA贡献1条经验 获得超0个赞

请问这个手风琴效果的下拉菜单中

css代码中的.open是哪里来得,html代码中也没有啊

查看完整回答
反对 回复 2016-12-30
  • 5 回答
  • 1 关注
  • 4252 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信