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

时间:2014-08-30 15:31:36

标签: javascript php wordpress function dom

我想删除网站中所有网页的div。

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

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

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

提前致谢

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

您必须在某处保存此状态。例如,您可以创建一个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"
       }
    });
});