我认为我的选择器出现问题导致我的jquery弹出脚本无法在IE中运行,(FF和chrome都可以)
编辑:在IE中发生的是淡入淡出显示但没有弹出窗口。
javasctipt
$(document).ready(function(){
$("a[name*='add-ad-to-']").click(function () {
var divname= this.name;
$("#"+divname).slideDown("slow");
$('body').append('<div id="fade"></div>');
$('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn();
return false;
});
});
html(动态生成,可能没有错,因为FF和chrome工作正常)
//the link
echo'<a class="noul" name="add-ad-to-'.$value.'" href="#">Link</a>';
//the popup
echo'<div class="box-add lucida" id="add-ad-to-'.$value.'" style="display:none;">
//content
</div>';
编辑:
这是css,但我不认为这是问题
#fade {display:none;background:#000;position: fixed; left: 0; top: 0;width: 100%; height: 100%;opacity: .80;z-index: 9999;}
.box-add{position:absolute;left:110px;top:-140px;z-index:99999;padding:30px 40px 10px 40px;background-color:#FFF;border:5px solid #888;text-align:left;color:#555;font-size:11px;font-weight:normal;line-height:22px;width:500px;}
答案 0 :(得分:0)
我怀疑您在name
元素a
和id
div
上使用相同的值时会遇到问题。在确定id
的{{1}}时建议在名称中添加内容,例如:
div
(当然,相应地更改HTML。)
这是因为IE has issues with conflating namespaces并且倾向于使用$("#div-"+divname).slideDown("slow");
转储name
。例如,Chrome或Firefox与IE中的try this example:
HTML:
id
JavaScript的:
<a name='foo'>This is the foo anchor</a>
<div id='foo'>This is the foo element</div>
<a name='bar'>This is the bar anchor</a>
正确输出:
foo.tagName = DIV bar.tagName = (none)
(var foo = document.getElementById('foo'),
bar = document.getElementById('bar');
display("foo.tagName = " + foo.tagName);
display("bar.tagName = " + (bar ? bar.tagName : "(none)"));
的“对象”是bar
。)
IE6和IE7的输出:
foo.tagName = A bar.tagName = A
null
应该忽略带有document.getElementById
s的a
,但它不会在IE6或IE7上,因此IE会选择锚而不是name
1}}。
答案 1 :(得分:0)
您的问题可能是您使用的IE版本,或者IE认为它应该使用的版本。 JQuery不支持IE 6.如果你使用的是IE8,你可能需要放入HTML IE = edge,使你的浏览器行为像IE8,而不是自动模拟旧版本。
为此,请将下面的元标记添加到HTML的标题中。
<meta http-equiv="X-UA-Compatible" contant="IE=edge" />