哈希更改页面的点击事件处理程序是否有任何特定方法?例如,假设我有一个页面 abc.com 。点击特定标签会为我们提供 abc.com#/ tab1 ,这是一个哈希页面。在散列页面上,我想在点击事件上添加保存按钮。
我的实现假设元素都是 body 的子节点,因此使用了事件委派。但是,同样不能按预期工作。
window.addEventListener("hashchange", function () {
console.log(window.location.hash);
$( "body" ).on( "click", "button", function( event ) {
if (window.location.hash === "#/tab1")
console.log("testing success");
});
});
答案 0 :(得分:0)
如answer of this post中所述,您可以使用jQuery方法:
$(window).on('hashchange', function() {
console.log(window.location.hash);
saveButton = $('#saveBtn:not(.bound)');
if (saveButton != undefined) {
saveButton.addClass('bound').click(function(){
if (window.location.hash == '#/tab1') {
console.log('testing success!');
}
});
}
});
检查.bound
类可确保click事件仅绑定到saveButton一次。 (Source here)