问题描述:
DWZ的panel面板比较常用,我们常常需要在其标题栏上再增加一个些按钮,如下图
问题出来了,增加按钮后,点面板收缩按钮,增加的按钮就消失了
而且面板收缩的click事件,也跟新增的按钮绑定了,
这样导致面板无法使用,还好是开源代码,研究其代码就能解决问题

/**
* @author Roger Wu
* @version 1.0
*/ function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
} (function ($) {
$.extend($.fn, {
jPanel: function (options) {
var op = $.extend({ header: "panelHeader", headerC: "panelHeaderContent", content: "panelContent", coll: "collapsable", exp: "expandable", footer: "panelFooter", footerC: "panelFooterContent" }, options);
return this.each(function () {
var $panel = $(this);
var close = $panel.hasClass("close");
var collapse = $panel.hasClass("collapse"); var $content = $(">div", $panel).addClass(op.content);
var title = $(">h1", $panel).wrap('<div class="' + op.header + '"><div class="' + op.headerC + '"></div></div>');
var buttonid = "panel_" + S4();
if (collapse) $("<a id=\"" + buttonid + "\" href=\"\"></a>").addClass(close ? op.exp : op.coll).insertAfter(title); var header = $(">div:first", $panel);
var footer = $('<div class="' + op.footer + '"><div class="' + op.footerC + '"></div></div>').appendTo($panel); var defaultH = $panel.attr("defH") ? $panel.attr("defH") : 0;
var minH = $panel.attr("minH") ? $panel.attr("minH") : 0;
if (close)
$content.css({
height: "0px",
display: "none"
});
else {
if (defaultH > 0)
$content.height(defaultH + "px");
else if (minH > 0) {
$content.css("minHeight", minH + "px");
}
}
if (!collapse) return;
var $pucker = $("#" + buttonid);
var inH = $content.innerHeight() - 6;
if (minH > 0 && minH >= inH) defaultH = minH;
else defaultH = inH;
$pucker.click(function () {
if ($pucker.hasClass(op.exp)) {
$content.jBlindDown({
to: defaultH, call: function () {
$pucker.removeClass(op.exp).addClass(op.coll);
if (minH > 0) $content.css("minHeight", minH + "px");
}
});
} else {
if (minH > 0) $content.css("minHeight", "");
if (minH >= inH) $content.css("height", minH + "px");
$content.jBlindUp({
call: function () {
$pucker.removeClass(op.coll).addClass(op.exp);
}
});
}
return false;
});
});
}
});
})(jQuery);

最新文章

  1. BZOJ1500[NOI2005]维修数列
  2. AutoHotkey(AHK)
  3. Ubuntu vi 常用命令集合
  4. Android使用ViewPager做轮播
  5. Atiti &#160;attilax主要成果与解决方案与案例rsm版
  6. &lt;context-param&gt;与&lt;init-param&gt;
  7. HTML 空格的表示符号 nbsp / ensp / emsp 的区别
  8. Powershell-入门
  9. python学习笔记五 模块下(基础篇)
  10. java静态变量、静态方法和静态代码段
  11. 几种通讯协议的比较RMI &gt; Httpinvoker &gt;= Hessian &gt;&gt; Burlap &gt;&gt; web service
  12. Protobuf-net学习笔记
  13. python设计模式之装饰器模式
  14. ubuntu经常使用的命令摘要
  15. C# XmlSerializer将对象序列化以及反序列化(Sqlite数据库)
  16. Linux记录-jstack采集namenode堆栈信息
  17. TP连接数据库报错:SQLSTATE[HY000] [2002] No such file or directory
  18. 字典(Dictionary)
  19. 黄聪:JS正则表达式验证数字
  20. Pomelo分布式游戏服务器框架

热门文章

  1. 【BZOJ-2299】向量 裴蜀定理 + 最大公约数
  2. 【BZOJ-1923】外星千足虫 高斯消元 + xor方程组
  3. Matlab以特殊分隔符写入txt(dlmwrite)
  4. CMD.EXE中dir超长字符串缓冲区溢出原理学习
  5. 数据结构算法C语言实现(八)--- 3.2栈的应用举例:迷宫求解与表达式求值
  6. POJ 题目分类(转载)
  7. JSONArray的使用
  8. 加州大学伯克利分校Stat2.2x Probability 概率初步学习笔记: Final
  9. libjpeg 编译makfile
  10. HD2767Proving Equivalences(有向图强连通分量+缩点)