繁体   English   中英

在所有页面上单击按钮时,如何从DOM中删除div?

[英]How can I remove a div from DOM on button click from all pages?

我想从网站内的所有页面中删除一个div。

我目前有以下代码,该代码将删除div,但是在重新加载/用户导航到另一个页面时,我需要检查用户是否单击了按钮。 如果它们随后显示:none或将其全部从DOM中删除。

如果不是js,请指出正确的方向。

$('#togglemydiv').on('click', function() { $('#notice').addClass('hide'); });

提前致谢

为了在同一页面上实现此目的,用户单击使用jquery,并同时发送ajax请求并在那里设置会话变量,对于所有页面用户,无需单击,也不需要通过jquery进行检查。 只需使用服务器端语言即可完成此任务。

从dom中删除元素只是暂时针对浏览器已加载的当前页面。 对服务器的每个请求都将收到未经任何修改的原始html页面。 最好的方法是直接在服务器上更改站点内容,例如使用php。

由于http无法记住用户的设置,因此您需要添加cookie或设置会话变量以记住用户值。 在每个网站请求上,您都加载会话值(或cookie值),并取决于您在页面中显示或隐藏内容的值。

添加一个会话变量,该变量保存用户是否单击了按钮。 然后,您可以检查页面重新加载是否设置了变量。 唯一的问题是,当他们离开站点并返回时,该会话将丢失并且开始新的会话,该div将返回。 在这种情况下,最好记录IP或创建一个用户数据库来存储变量。

<?php if ($_SESSION['name_of_variable']=='clicked'){<div style="display:none"></div>}else{
<div style="display:none"></div>};)?>

您必须将此状态保存在某处。 例如,您可以创建一个cookie:

$('#togglemydiv').on('click', function() { 
    $('#notice').addClass('hide'); 

    document.cookie="notice=hide";
});

当用户转到另一个页面时,您必须从cookie中检查状态:

$noticeClass = 'hide';

if(isset($_COOKIE['notice']) && $_COOKIE['notice'] == 'show') {
    $noticeClass = 'show';
}

比将$noticeClass变量传递给视图:

<div class="<?php echo $noticeClass ?>">My notice</div>

或者,您可以在数据库中保留此状态:

$('#togglemydiv').on('click', function() { 
    $('#notice').addClass('hide'); 

    $.ajax({
       type: "POST",
       url: http://yoursite.com/save-notice-status
       data: {
           noticeStatus: "hide"
       }
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM