2012-10-17 50 views
0

我写了一个JavaScript函数,它将创建一个弹出窗口,并且我从我的代码中调用该函数。但是当我点击该按钮即ie更改为ie 7兼容模式,我看到我的弹出按钮后面。代码导致IE 8更改为IE7兼容模式

这里是我的Java脚本:

(function(){ 


jQuery.fn.popbox = function(options){ 
var settings = jQuery.extend({ 
selector  : this.selector, 
open   : '.open', 
box   : '.box', 
close   : '.close' 
}, options); 


var methods = { 
open: function(event){ 
    methods.close(); 
    jQuery('.collapse').show(); 
    createpopbox(); 

event.preventDefault(); 
//alert("In code"); 

var pop = jQuery(this); 
var box = jQuery(this).parent().find(settings['box']); 
//alert(jQuery(this).attr("class")); 
var open= jQuery(this).parent().find(settings[jQuery(this).attr("class")]); 



if(box.css('display') == 'block'){ 
methods.close(); 
} else { 
box.css({'display': 'block', 'top': (jQuery(this).position()).top + 12, 'left':(jQuery(this).position()).left }); 
} 
}, 

close: function(){ 
jQuery(settings['box']).hide();//.fadeOut("fast"); 
removedivs(); 

} 
}; 


jQuery(document).bind('keyup', function(event){ 
if(event.keyCode == 27){ 
methods.close(); 
} 
}); 


jQuery(document).bind('click', function(event){ 
if(!jQuery(event.target).closest(settings['selector']).length){ 
methods.close(); 
} 
}); 


return this.each(function(){ 
jQuery(this).css({'width': jQuery(settings['box']).width()}); // Width needs to be set otherwise popbox will not move when window resized. 
jQuery(settings['open'], this).bind('click', methods.open); 
jQuery(settings['open'], this).parent().find(settings['close']).bind('click', methods.close); 
}); 
}; 


}).call(this); 
    function createpopbox(){ 
    jQuery('<div class="arrow"></div>'+ 
'<div class="arrow-border"></div>' 
).appendTo('.box');; 
    } 
    function removedivs(){ 
    jQuery('form').remove('#subForm'); 
    jQuery('div').remove('.arrow'); 
    jQuery('div').remove('.arrow-border'); 
    } 

我曾尝试加入meta标记来强制页面留在IE 8,但它不工作。

任何人都可以帮我解决这个问题吗?

感谢

+0

总是准备这样的问题了'的jsfiddle link',因为这将很容易让测试你脚本或代码。 – Yasser

回答

0

我觉得这个问题是不是在代码中,Intranet站点的默认浏览器使用兼容模式