1

假设我有两个绑定事件 - 如下所示的单击和 hashchange(超级简化示例):

$('a').bind('click', function(e) {
    location.hash = $(this).attr('id');
}

$(window).bind('hashchange', function(e) {
    console.log(e.target);
}

如何将引发 click 事件的元素的 id 传递给绑定的 hashchange 事件?我见过像下面这样的例子,但不能让它工作:

$('a').bind('click', ['some-data'], function(e) {
    location.hash = $(this).attr('id');
}

$(window).bind('hashchange', function(e) {
    console.log(e.data[0]);
}

任何建议都会很棒...

4

1 回答 1

0

无法从hashchange事件处理程序内部找到启动哈希更改的锚点,因为该事件是由window自身触发的。

hashchange处理程序内部,您可以检查 的值location.hash,因为您之前使用location.hash = $(this).attr('id').

$(window).bind('hashchange', function(e) {
    console.log(location.hash.substr(1)); // should be the id of your anchor
}
于 2012-10-19T06:29:30.177 回答