Jquery 基于(散列)链接组件触发JavaScript

Jquery 基于(散列)链接组件触发JavaScript,jquery,hash,reload,Jquery,Hash,Reload,我有一个简单的jquery函数,可以在url栏中显示#showvideo时显示视频,当您键入url并访问file.html#showvideo时可以使用,但在单击链接时不能使用。我是否需要设置某种侦听器事件来触发此事件?#视频链接将嵌入到vimeo视频中,因此我无法更改标签 $(function(){ if(window.location.hash == '#showvideo') { $(".current #video").show(); } }) 你需要注

我有一个简单的jquery函数,可以在url栏中显示#showvideo时显示视频,当您键入url并访问file.html#showvideo时可以使用,但在单击链接时不能使用。我是否需要设置某种侦听器事件来触发此事件?#视频链接将嵌入到vimeo视频中,因此我无法更改标签

$(function(){
    if(window.location.hash == '#showvideo') {
        $(".current #video").show();
    }
})

你需要注意变化

这是一个跨浏览器兼容的库/多边形填充:


您需要注意散列更改。有这样的库可以帮助实现这一点。有些浏览器有您可以监听的事件。对于不需要的浏览器,您可以设置一个短时间间隔的轮询计时器,以检查哈希值是否有更改。

您的轮询计时器没有问题。运行
$(“.current.video”).show()时会发生什么在控制台中?那么#video对象是否存在于文档就绪状态?您知道为什么这不起作用吗?函数showvideo(){if(window.location.hash='#showvideo'){console.log('video=1');}}$(document).ready(函数(){showvideo();$(window.hashchange(showvideo());})确定$hashchange(showvideo());应该是window.onhashchange=showvideo。看看这里:你知道为什么这行不通吗?函数showvideo(){if(window.location.hash=='#showvideo'){console.log('video=1');}}$(document).ready(函数(){showvideo();$(window.hashchange(showvideo());})Change
$(window.hashchange(showvideo())
to
$(window.hashchange(showvideo)