JavaScript/PHP 刷新取代了 HTML 元素类


JavaScript/PHP Refresh Replace HTML Element Class

我的网站上有一个用PHP创建的模板化元素。它出现在我网站的许多页面上。模板中有一个具有 hidden 类的span。单击元素中的button时,它会从span中删除hidden类。它在第一页上效果很好,但问题是,一旦从span中删除类,它就会渗透到使用该模板的所有页面中。有没有办法在刷新页面时替换隐藏类?

这是一个WordPress网站,我可以提供任何相关的代码片段。javascript非常简单,只需在按钮上单击jQuery单击触发器即可删除隐藏类,并且页面标记非常简单。

以下是 PHP 模板部分的要点:

https://gist.github.com/weaverhe/7d8dec4a522a12478289(此代码只是包含在带有 PHP 的相应模板文件中)

还有javascript:

相关片段:

// Show the filter bar on button click
function showFilters() {
  $('#toggle-filters').on('click', function(e) {
    if($('div.filters').hasClass('hidden')) {
        e.preventDefault();
        $('div.filters').removeClass('hidden');
        $(this).removeClass('grey').text('Apply Filters');
        $('#remove-filters').removeClass('hidden');
        $('#chosen-tag-holder span.active').removeClass('hidden');
    }
    else {
        return true;
    }
  });
}

删除隐藏类的#chosen-tag-holder选择器是页面重置时应该重置的内容。

全过滤器栏 JS:https://gist.github.com/weaverhe/05e05e45dbbcc9f10f47

allFilters();函数在每个页面上运行,document.ready

刷新

应该是清除javascript更改,听起来您的问题在其他地方。需要查看javascript片段才能理解你在做什么。

否则,建议检查您是否清除了浏览器缓存,并且在测试时禁用了任何wordpress缓存。

在页面之间导航时,是否正在重新加载父窗口?如果您有多个窗口对象,这可能是您的问题。

如果我

理解正确,您希望在单击元素中的按钮后在所有页面上永久删除隐藏类,无论用户是刷新页面还是选择网站上的其他页面?使用Javascript在客户端无法实现这一点,您需要修改php代码。

根据您是希望在将来的所有会话中删除隐藏类,还是只删除此特定用户的此会话,您需要执行以下操作之一:

1) 在会话的其余部分删除。设置 $_SESSION 超全局,并在该用户每次刷新/更改页面时读取其值,并相应地回显相应的 html。

另请参阅:

http://php.net/manual/en/reserved.variables.session.php

在 php 中页面重定向后会话丢失

2) 为该特定用户永久删除。在用户数据库中保存一个布尔值(tinyInt),在应用模板之前读取该值,指示该用户是否(曾经)单击过该按钮,然后呈现相应的html。

在所有情况下,您都需要像这样修改模板:

<?php
    "your condition" ? 
    echo <div class="hidden filters row overflow-visible"> :
    echo <div class="filters row overflow-visible">;
?>