修正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