问题描述
我的问题是这个。假设我的页面的网址为www.mysite.com/test。在此测试页内,有一个带有data-id =“ vmax”的链接。
<a href="some-url-here-doesn't-matter" data-id="vmax">Link</a>
因此,如果我使用带有#vmax哈希值的网址(例如www.mysite.com/test/#vmax),则需要获取#vmax部分,删除#并单击带有data-id =“ vmax”的链接
直到现在我一直尝试的是:
jQuery(window).load(function() {
var targetHash=jQuery(window.location.hash.slice(1));
console.log(targetHash);
jQuery('a[data-slug="'+targetHash+'"]').click();})
控制台日志告诉我,哈希中的#已成功删除,但click事件从未发生。实际上console.log在调试器中给出了这一行: n.fn.init [prevObject:n.fn.init(1),context:document,选择器:“ vmax”]
如果我将代码更改为
jQuery(window).load(function() {
var targetHash=jQuery(window.location.hash.slice(1));
console.log(targetHash);
jQuery('a[data-slug="vmax"]').click();})
单击事件成功发生。 作为一个可能很愚蠢的主意,我尝试使用String()函数将变量targetHash转换为字符串,但console.log完全丢失了vmax部分...因此该字符串无用...
如何解决此问题?预先非常感谢。
解决方法
我找到了答案...
我将变量改为var targetHash=jQuery(window.location.hash.slice(1));
,而不是var targetHash=window.location.hash.slice(1);
不应该将其包装在jquery中...:/。