修正jquery boxy插件,纯属个人爱好(修正其IE6 不能遮挡下拉菜单及动态FLASH的BUG,增强 弹层事件源原有JS 只支持 A标签 后修正 支持input弹层,)
修正jquery boxy插件,纯属个人爱好
1.修正其IE6 不能遮挡下拉菜单及动态FLASH的BUG
2.增强 弹层事件源原有JS 只支持 A标签 后修正 支持input弹层
3.增强 多个按钮弹出一个div内容的问题不会出错
测试过 chrome,ie6~9,ff 10
有问题可与我联系
修正片段A (增强 弹层事件源原有JS 只支持 A标签 后修正 支持input弹层)
jquery.boxy.js 原脚本 第21行 if (node == 'a') { jQuery(this).click(function() { var active = Boxy.linkedTo(this), href = this.getAttribute('href'), localOptions = jQuery.extend({actuator: this, title: this.title}, options); 新代码 判断是否为 a标签 是的话就 截取hreflang属性 作为弹层 名字 , input 标签 截取lang属性 作为弹层 名字 例如 <input type="button" lang="#examine" value="审核" class="boxy" /> <a hreflang="#quickShow" class="boxy" title="预览" >预览</a> if (node == 'a'||node == 'input') { jQuery(this).click(function() { if(node == 'input') { var active = Boxy.linkedTo(this), href = this.getAttribute('lang'), values=this.getAttribute('value') } else if(node == 'a') { var active = Boxy.linkedTo(this), href = this.getAttribute('hreflang'), values=this.getAttribute('lang') }
修正片段B (增强 多个按钮弹出一个div内容的问题不会出错)
jquery.boxy.js 原脚本 第27行 if (active) { active.show(); } else if (href.indexOf('#') >= 0) { var content = jQuery(href.substr(href.indexOf('#'))), newContent = content.clone(true); content.remove(); localOptions.unloadOnHide = false; new Boxy(newContent, localOptions); } 修正后代码 if (active) { active.show(); //可以加载多个同样class的DIV var content = jQuery(href.substr(href.indexOf('#'))); localOptions.unloadOnHide = false; new Boxy($(content)[0], localOptions);//新建弹层 } else if (href.indexOf('#') >= 0) { //可以加载多个同样class的DIV var content = jQuery(href.substr(href.indexOf('#'))); localOptions.unloadOnHide = false; new Boxy($(content)[0], localOptions);//新建弹层 }
修正片段C (修正其IE6 不能遮挡下拉菜单及动态FLASH的BUG)
jquery.boxy.js 原脚本 第40行 return false; 前加一句函数 iframesin();//动态加入iframe遮挡层 后 jquery.boxy.js 原脚本 第570行 jQuery('.close', root).click(function() { self.hide(); 后 加入 $("#bgIframes").remove();//动态删除Iframe 最后在在 jquery.boxy.js 原脚本 最后一行加入函数 动态插入iframe 并删除多余的iframe和 弹层框架 function iframesin() { if($("table.boxy-wrapper").length>1) { $("#bgIframes").remove(); $("td.boxy-inner").each( function () { if(!$(this).children().is(".boxy-content")) { $(this).parents(".boxy-wrapper").remove(); } } ) } iframes=document.createElement("iframe"); iframes.setAttribute("id","bgIframes"); iframes.setAttribute("frameborder","0"); $(iframes).appendTo("body"); $("#bgIframes").css({"position":"absolute","top":$("table.boxy-wrapper").offset().top,"left":$("table.boxy-wrapper").offset().left,"width":$("table.boxy-wrapper").width(),"height":$("table.boxy-wrapper").height(),"overflow":"hidden","z-index":"300","background":"#fff","opacity":'0.01'}); }
web 技术交流群-6306526