jQuery如果url哈希,点击事件/激活javascript

因此,从主页,我有一个链接到产品列表页面。 产品页面具有展开/折叠div。

我需要适当的div来扩展,具体取决于url是什么。

所以主页上的链接是

healthy snacks 

当我点击上面的链接时,我想在产品页面上激活它:

  Healthy Snacks 

我已经尝试了一些其他代码,我发现触发点击通过检查哈希标记,但没有一个正常工作,我认为这是因为ReverseDisplay js。 请有任何见解会有所帮助。

谢谢

您可以在产品页面的文档就绪function中进行以下更改:

简单修复:由于jQuery id-selector是#elementId ,您可以简单地使用window.location.hash值作为您的id选择器,并使用它来定位所需的元素。

 if ( window.location.hash ) { $(window.location.hash).click(); //clicks on element specified by hash } 

更好:除了上述内容之外,请从标记中取出js。

 $('#healthysnacks').click(function(e) { e.preventDefault(); ReverseDisplay('products4'); }); 

然后, 执行此操作后 ,使用上面的$(window.location.hash).click()代码。 另外,将您的链接更改为:

  Healthy Snacks 

您可以使用Location对象的hash属性,尝试以下操作:

 $(document).ready(function(){ var id = window.location.hash; $(id).trigger('click') }) 

当您使用jQuery而不是使用javascript: protocol时,您可以使用jQuery click方法:

 $('#healthysnacks').click(function() { // do something here }) 

这里建议的答案是有效的,但……

使用window.location.hash时要非常小心,因为这可能会导致XSS漏洞。 $()也可以创建一个HTML元素,并且使用精心构造的哈希值,有人可以执行任意JavaScript代码。

例如

http://my-website.com/about#'>

如果my-websites.com/about页面在jQuery选择器中使用window.location.hash,则该错误代码最终会被执行。