当前位置: 首页 > 知识库问答 >
问题:

在哈希更改时更改样式

方轩昂
2023-03-14

我正在寻找一种通过改变散列来改变部分样式的方法。让我以一个例子来解释:

>

  • 当前URL为:
    example.com/drinks/?all-drinks=drinks

    然后单击复选框,URL将更改为:
    example.com/drinks/?all-drinks=drinks&drinks=spirits-drinks

    我想更改类的style

    我尝试了以下代码,但它不起作用:

    <script>
    $( window ).on( 'hashchange', function( e ) {
        console.log( 'hash changed' );
    } );
    </script>
    

    实际上,每次哈希更改时,控制台中都不会出现任何内容。

  • 共有1个答案

    谯振国
    2023-03-14

    当URL的片段标识符(URL中以#符号开头和后面的部分)发生更改时,将激发hashchange事件。

    如果您试图检测?all-drinks=drinks?all-drinks=drinks&drinks=spirits-drinks这不包含在哈希更改

    1. 您可以扩展locationchange,就像@aljgom在这里解释的那样:在他的答案中
    2. onpopstate事件,此处解释
    3. 或某些monkey补丁来“伪造”本答案中解释的某种onpushstate
     类似资料:
    • 我想重定向到另一个页面 这工作正常,但它首先会变为 我也试着跟随 它正在创建一个正确的URL,但没有向下滚动到id为某个DIV id的 编辑 另外我尝试了

    • 我使用Rails与反应宝石和react-router.js内部资产。我使用webpack为了使用需要 我有我的路线内的应用程序。js: 另外es6。jsx: 当我访问controller_name/index时,默认情况下,它会呈现带有“#hello”链接的“欢迎组件”文本,但单击时,它不会执行任何操作。它仍然在说“欢迎组件” 我做错了什么?

    • 问题内容: 在Java 8 java.util.Hashmap中,我注意到来自的更改: 至: 从代码中可以看出,新功能是低16位的简单形式,而高16位则保持了高16位不变,这与先前实现中的几种不同移位相反,并且从注释中可以看出,这在分配上不太有效散列函数的结果,其中低位对不同的存储区具有大量冲突,但由于必须执行较少的操作,因此节省了CPU周期。 我在发行说明中唯一看到的是从链接列表到平衡树的更改,

    • 我必须为我们新的Laravel 5.6网站使用一个旧的用户数据库。现在我有办法要求所有用户重新制作密码。旧址为joomla 3.7。在玩了一会儿之后,我发现,在登录Joomla 3.7时检查密码。5用过。。。 要设置新用户的密码... 我在Laravel找到了大约6个地方可以改变... 我就是找不到登录挑战? LoginController中没有任何内容。 所以真正的问题是登录在哪里-

    • 我正在用html/jsp页面主体中的Google地图做一个web动态项目。 我制作了一个函数,可以创建一个标记(lat、lng、map),并在标记的参数中使用一个特殊的image.png作为图标。 在我的地图中,我制作了两种不同的样式(地图的颜色…)“白天”和“夜晚”。 我想知道当用户点击夜间更改样式时,我如何更改标记的图标。事实上,标记的颜色不适合这种风格的地图... 我尝试用相同的名称初始化不

    • 问题内容: 我想在用户滚动角度方式时更改CSS元素。 这是使用JQuery方式的代码 我尝试使用以下代码执行Angular方式,但是$ scope.scroll似乎无法正确获取滚动数据。 Muchos gracias好友! 问题答案: 请记住,在Angular中,DOM访问应从指令内部进行。这是一个简单的指令,可根据窗口的设置变量。 对我来说,您到底要寻找什么样的最终结果尚不清楚,所以这是一个简单