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

posted @ 2012-03-24 12:00  John.chang  阅读(517)  评论(0编辑  收藏  举报