我已经在谷歌上搜索过了,并尝试了我找到的几个答案,但无法解决我的问题。
我有一个模式弹出,应该出现在一个按钮按下。这适用于除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 });
}警报弹出,所以它捕捉到了早期的浏览器。fade被删除了,所以问题出在这一行;$('#collect-email').modal({ show: false });我添加它是为了尝试强制模式消失。
编辑:找到解决方法。如果我在适当的时候手动隐藏和显示包装模式的div,那么剩下的代码就可以工作了。所以它并不优雅,但由于这是xp / ie8,所以我现在不会因为它而失眠。
发布于 2015-09-21 20:58:50
它是否删除了标记中的fade类?(通过检查元素进行检查)。如果不是,可能是您的功能不正确。还可以看看http://api.jquery.com/jquery.browser/
https://stackoverflow.com/questions/32695610
复制相似问题