手风琴插件

html

<a href="javascript:;" onclick="add()">添加</a>
<a href="javascript:;" onclick="removea()">删除特定行</a>
<ul class= "pms-accordion-box" id="pms-accordion"></ul>

css

a{color: #999;text-decoration: none;}
ul,li{padding: 0;margin: 0;list-style: none;}
/* 自定义手风琴 */
.pms-accordion{}
.pms-accordion-title{overflow: hidden;background: #ebf0f5;color: #2387aa;padding: 5px;margin: 10px 0;}
.pms-accordion-title .pms-icon-pr{float: left;}
.pms-accordion-title .pms-accordion-handle{float: right;}
.pms-accordion-body{display: none;}
.pms-accordion-title .icon-minus {display: none;}
.pms-accordion-title .icon-plus {display: inline-block;}
.pms-accordion-title.pms-accordion-open .icon-minus {display: inline-block;}
.pms-accordion-title.pms-accordion-open .icon-plus {display: none;}

插件js

(function($){
	var pmsAccordiond = function(el, opt, param){
		this.opt = opt;
		this.el = el;
	}
	$.fn.pmsAccordion = function(opt,param){
		var pa = new pmsAccordiond($(this), opt , param);
		if( !param ){
			pa.init();
		}
		if(param == "removeDom"){
			pa.removeDom(opt);
		}
		if(param == "addDom"){
			pa.addDom(opt);
		}
	}
	pmsAccordiond.prototype = {
		init : function(){
			var _pmsAccordionData = this.opt.data;
			var editFn = this.opt.editFn;
			var deleteFn = this.opt.deleteFn;
			var _addDom = this.opt.addDom;
			var _removeDom = this.opt.removeDom;
			this.creatDom(_pmsAccordionData,editFn,deleteFn);
			if (_addDom) {
				this.addDom(_addDom);
			}
			if (_removeDom) {
				this.removeDom(_removeDom);
			}
		},
		dom : function(_data){
			var _h = "";
			_h += '<li class = "pms-accordion">';
			_h += '<div class = "pms-accordion-title">';
			_h += '<i class = "pms-icon-pr iconfont icon-plus"></i>';
			_h += '<i class = "pms-icon-pr iconfont icon-minus"></i>';
			_h += _data.title;
			_h += '<div class = "pms-accordion-handle">';
			if(_data.editAble == true){
				_h += '<a href = "javascript:;" class="pms-edit"><i class = "iconfont icon-edit"></i></a>';
			}
			if(_data.deleteAble == true){
				_h += '<a href = "javascript:;" class="pms-delete"><i class = "iconfont icon-delete"></i></a>';
			}
			_h += '</div>';
			_h += '</div>';
			_h += '<div class = "pms-accordion-body">';
			_h += _data.content;
			_h += '</div>';
			_h += '</li>';
			this.el.append(_h);
		},
		creatDom : function(_pmsAccordionData,editFn,deleteFn){
			if(_pmsAccordionData){
				for( var i = 0; i < _pmsAccordionData.length; i++ ){
					this.dom(_pmsAccordionData[i]);
				}
			}
			//点击实现动画
			this.el.on("click",".pms-accordion .pms-accordion-title",function(e){
				var ev = e || event;
				if($(this).hasClass("pms-accordion-open")){
					$(this).removeClass("pms-accordion-open");
				}else{
					$(this).addClass("pms-accordion-open");
				}
				$(this).parents(".pms-accordion").siblings().find(".pms-accordion-body").stop().slideUp();
				$(this).parents(".pms-accordion").siblings().find(".pms-accordion-title").removeClass("pms-accordion-open");
				$(this).siblings(".pms-accordion-body").stop().slideToggle();
				ev.stopPropagation();
			});
			this.el.on("click",".pms-accordion .pms-accordion-handle .pms-edit",function(e){
				var ev = e || event;
				var _index = $(this).parents(".pms-accordion").index();
				if(typeof(editFn) == "function"){
					editFn(_index);
				}
				ev.stopPropagation();
			});
			this.el.on("click",".pms-accordion .pms-accordion-handle .pms-delete",function(e){
				var ev = e || event;
				var _index = $(this).parents(".pms-accordion").index();
				if(typeof(deleteFn) == "function"){
					deleteFn(_index);
				}
				ev.stopPropagation();
			});
		},
		addDom : function(opts){
			this.dom(opts);
		},
		removeDom : function(opts){
			this.el.find("li")[opts.index].remove();
		}
	}
	
})(jQuery);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值