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,则该错误代码最终会被执行。