所以我有一个页面,有3个按钮来过滤页面上的内容。
<section class="solution-filter">
<div class="wrapper">
<button class="fact-sheet" data-target_category="fact-sheet" disabled="">Fact sheet</button>
<button class="demo" data-target_category="demo">Demo</button>
<button class="apps" data-target_category="apps">Apps and connectors</button>
</div><!-- /.wrapper -->
</section>
我希望能够根据网址哈希点击按钮。
例如http://example.com/#demo
会点击<button class="demo" data-target_category="demo">Demo</button>
if ( window.location.hash ) {
$(document).click($('<button>').data('target_category', (window.location.hash));
}
答案 0 :(得分:1)
您已经有了正确的想法,尽管您用于提升点击事件的语法并不完全正确。您需要先使用hash
值来选择元素,然后在其上调用click()
或trigger('click')
。
if (window.location.hash) {
$('.' + window.location.hash.substr(1)).click();
}
请注意,substr()
调用用于从字符串的开头删除#
。
上面的代码在页面加载时适用。如果您还想知道页面加载后哈希值何时发生更改,您可以使用hashchange
的{{1}}事件:
window
答案 1 :(得分:1)
您需要获取button
然后触发click()
,$('<button>')
将创建一个jQuery对象,而不是定位所需的元素。
if (window.location.hash)
$('button[data-target_category="'+window.location.hash.substr(1)+'"]').click();