javascript不是我的强项,所以在正确的方向提供任何帮助或帮助都会非常感激!
基本上我有一个div隐藏在我的页面上,只有当他们是根据cookie设置的新访问者时才会向用户显示但是它似乎在firefox和chrome中都运行良好但在点击时使用IE关闭按钮页面跳回到顶部并显示隐藏的div(这不应该,它应该保持隐藏)
HTML
<div id="theLink">
<?php if($this->countModules('tekenin2')) : ?>
<div id="gototop">
<div id="popup"><a href="#" onclick="parentNode.remove();return false; "><img src="/templates/marktoe/images/close.png" id="close" class="close" border="0" alt="close" /></a>
<jdoc:include type="modules" name="tekenin2" style="xhtml" />
</div>
</div>
<?php endif; ?>
脚本1
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
} else var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name, "", -1);
}
function setTheDivStyle() { // body on load event
if (!readCookie('visited')) {
// if cookie not found display the div and create the cookie
document.getElementById("theLink").style.display = "block";
createCookie('visited', 'visited', 1); // 1 day = 24 hours persistence
} else {
// if cookie found hide the div
document.getElementById("theLink").style.display = "none";
}
}
脚本2 - 我怀疑问题在于说谎但我可以确定
window.addEvent('domready',function() {
/* smooth */
new SmoothScroll({duration:500});
/* link management */
$('theLink').set('opacity','0').setStyle('display','block');
/* scrollspy instance */
var ss = new ScrollSpy({
min: 10,
onEnter: function(position,enters) {
//if(console) { console.log('Entered [' + enters + '] at: ' + position.x + ' / ' + position.y); }
$('theLink').fade('in');
},
onLeave: function(position,leaves) {
//if(console) { console.log('Left [' + leaves + '] at: ' + position.x + ' / ' + position.y); }
//value below was #gototop div
$('theLink').fade('out');
},
onTick: function(position,state,enters,leaves) {
//if(console) { console.log('Tick [' + enters + ', ' + leaves + '] at: ' + position.x + ' / ' + position.y); }
},
container: window
});
});
我需要隐藏div,使用cookie检查用户是新用户还是返回用户,如果新显示div其他隐藏它。
任何提示或建议都会非常感激,就像我说这不是我的强项,我觉得我错过了一些基本的东西。我浏览了多个其他线程试图绕过它,但无济于事。 提前谢谢!
答案 0 :(得分:1)
在HTML中,替换
parentNode.remove();
带
this.parentNode.parentNode.removeChild(this.parentNode);
如果你想删除整个div,你可能必须上去(添加更多.parentNode) - 当前代码删除了弹出div。