使用jQuery单击Hashchange页面上的Event Listner

时间:2016-07-31 16:02:40

标签: javascript jquery

哈希更改页面的点击事件处理程序是否有任何特定方法?例如,假设我有一个页面 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");
    });
});

1 个答案:

答案 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