1

以下のように、クリックとハッシュ変更の 2 つのバインドされたイベントがあるとします (非常に単純化された例)。

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

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

クリック イベントを発生させる要素の 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.hashlocation.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 に答える