我用谷歌搜索了这个,并尝试了我找到的几个答案,但无法解决我的问题。
我有一个模式弹出窗口,应该出现在按钮上。这适用于所有其他浏览器/版本,但IE。一个客户必须使用IE 8(所有仍然使用XP,但请不要争论他们应该更新。这不会在不久的将来发生。)
这是我的一些HTML代码。 (为简洁起见,省略了表格细节)
<div class="modal fade" id="collect-email" data-backdrop="static" data-keyboard="false">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Collect Customer Email</h3>
</div>
<div class="modal-body">
...
我已加载html5shiv。我也有下面的js代码,它应该删除淡入淡出操作,因此使模态工作。
var ie = (function(){
var undef,
v = 3,
div = document.createElement('div'),
all = div.getElementsByTagName('i');
while (
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
all[0]
);
return v > 4 ? v : undef;
}());
$(document).ready(function () {
if (ie < 10) {
jQuery('.fade').removeClass('fade');
}
...
但是,只要浏览页面,模态就会显示。按下模态弹出窗口上的关闭或确定按钮不会再次隐藏它。
更新:我交换了我的ie版本检测代码,用于检测特定功能。
if( ! document.addEventListener ){
alert("you got IE8 or less");
jQuery('.fade').removeClass('fade');
$('#collect-email').modal({ show: false });
}
警告弹出,因此它正在捕获早期的浏览器。淡化被删除,所以问题是线; $('#collect-email')。modal({show:false});我加入试图强制模态消失。
编辑:找到解决方法。 如果我手动隐藏并在适当的时间显示div包装模态,那么其余的代码就可以工作了。所以它不优雅,但是因为这是xp / ie8,我现在不会因此而失去太多的睡眠。
答案 0 :(得分:0)
它是否删除了标记中的淡入淡出类? (通过检查元素检查)。如果不是,也许你的功能不正确。看看http://api.jquery.com/jquery.browser/