<div id="topbar">
<div class="topbarcontent">Some Information for users.</div>
<div class="topbarCloser" title="Schließen"> </div>
</div>
jquery的:
if ($.browser.msie && $.browser.version.substr(0,1)<9) { // if ie6 || ie7 || ie8
var topbar = $.cookie('TopBar');
if (topbar === 'on') {
$('#topbar').hide();
} else {
$('#topbar').show();
}
//Browser Tip
$('#topbar .topbarCloser').click(function() {
$(this).parent().slideUp({
duration: 300,
easing: 'easeOutQuint',
complete: function() {
$('#topbar').remove();
$.cookie('TopBar', 'on', { expires: 1000 });
}
});
});
}
用户只需点击关闭,即可保存Cookie并隐藏该栏以供将来访问。 (我知道这应该用数据库完成,但在我的情况下,这没关系)
它在ie8中工作正常,但在ie7中,条形图会闪烁几毫秒而不是隐藏。因此,如果在ie7中第一次访问该页面,则顶部栏应该是可见的,但事实并非如此。我很快就能看到它闪烁然后隐藏起来。 (不淡出,只是隐藏)。
知道是什么原因引起的吗?我的代码有什么奇怪的东西吗?
答案 0 :(得分:1)
这很可能是由你的CSS引起的。你的JS并没有立即隐藏它,你的CSS让它可见。改变你的情况。默认情况下隐藏您的栏(在CSS中),然后,如有必要,使用JavaScript显示它。
这样可以防止页面加载的那个短暂时刻在JS出现之前可以隐藏它。
因此...
#topbar { display: none; }
这意味着你的JS可以阅读:
if (topbar != 'on') {
$('#topbar').show();
}
答案 1 :(得分:0)
尝试编辑cookie插件:
在第83行而不是:
if (document.cookie && document.cookie != '') {
使用:
if ((typeof(document.cookie) != 'undefined') && document.cookie != '') {