【问题标题】:How do I add a class to an a href after the page loads页面加载后如何将类添加到a href
【发布时间】:2016-05-02 21:44:45
【问题描述】:

所以,我有 3 个链接按钮,当单击一个按钮时,我想向其中添加“.active”类,我认为这段代码可以工作

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

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

【问题讨论】:

    标签: jquery drupal


    【解决方案1】:

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

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

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

    希望这很有用。对上一个答案进行了详细阐述

    【讨论】:

      【解决方案2】:

      您不能通过点击事件来执行此操作,一旦页面加载,您将失去课程。您可以根据已加载的新页面的某些独特内容将类添加到特定按钮。

      【讨论】:

        【解决方案3】:

        您似乎正在设置一个过滤器,然后对其采取行动,这为您提供了几个选择,这些选择可能会提供您想要的行为,只需稍微改变方法。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-05
          • 2020-10-22
          • 2018-07-30
          • 2012-06-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多