如何在页面加载后向一个href添加一个类

时间:2016-05-02 21:44:45

标签: jquery drupal

所以,我有3个链接按钮,当点击一个按钮时,我想向它添加'.active'类,我认为这个代码可以正常工作

jQuery(function() {
    jQuery('.filterbuttons').click(function() {
        jQuery('.filterbuttons').removeClass("active");
        jQuery(this).addClass("active");
    });
});

它添加了类,但随后页面加载(因为我点击了链接)并且.active类消失了。 我如何拥有.click函数,然后在页面再次加载后添加该类?

3 个答案:

答案 0 :(得分:1)

当您点击链接时,根据链接页面的html重新加载所有内容。脚本以其原始状态加载。

您可以获取该页面的网址,并根据网址将该类添加到相应的按钮中,如下所示

var url = window.location.href;
if(url.includes(partOfTheURLThatDistinguishesMyPage)) {
     $(appropriateButton).addClass("active"); 
}

希望它有用。详细阐述了上一个答案

答案 1 :(得分:0)

您无法通过点击事件执行此操作,一旦页面加载您将丢失该类。您可以根据加载的新页面的某些唯一内容将类添加到特定按钮。

答案 2 :(得分:0)

您似乎正在设置一个过滤器,然后您需要对其进行操作,这会为您提供一些选择,这些选择可能会提供您想要的行为,并略微改变方法。

  • 在URL中设置一个参数,然后您可以在JS中读回(类似于@ EmOnTheWeb的响应)。由于此问题包含Drupal标记,因此您可能正在使用启用了公开过滤器的视图等模块。如果您在Drupal端有一个自定义模块,您还可以在页面重新加载期间设置一个活动类(具体取决于您遗漏的许多细节)。
  • 使用preventDefault()确保页面无法重新加载。然后在您的点击处理程序中执行过滤和显示更新所需的任何内容。