3

基本的に、アンカーを変更するリンク(URLの#記号の後の部分)をページ全体に配置したいと思います。URLのその部分が変更されると、JavaScriptが応答するはずです。

すべてのリンクにonclickメソッドを追加できますが、もっと良い方法はありますか?

4

7 に答える 7

4
$(window).bind('hashchange', function() {
  // code here
});

それがそれをするべきだと思う

于 2012-09-06T16:19:14.003 に答える
4

それはアンカーではありません、それはハッシュですか?

$(window).on('hashchange', function() {
    alert('My fracking hash changed to : '+document.location.hash);
});
于 2012-09-06T16:18:22.853 に答える
1

jQueryでは、個々のすべてのリンクにonclickイベントを追加する必要はありません。このようなセレクターを使用する$('a')と、すべてのリンクにイベントを一度に追加できます。

$('a').click(function(){
    // code here
});

このイベント内では、$(this)オブジェクトを使用してを取得できますhref

しかし、他の答えは、この問題を解決するためのよりエレガントな方法を示していることをお勧めします。

于 2012-09-06T16:18:04.063 に答える
0

まず、要素を選択する必要があります。

たとえば、varlinks = $( "a");

次に、jquery関数.click()を追加します

于 2012-09-06T16:20:56.693 に答える
0

にデリゲートを追加できますa

$(elements).on(events、selector、data、handler);

違いは、onClickすべての要素に「」を追加するわけではありませんが、「 」イベントをaキャッチすることです。onClicka

于 2012-09-06T16:20:56.570 に答える
0

これを試して

  1. グローバル変数に格納window.location.hashします。たとえば、currentHash
  2. チェックする関数を作成するwindow.location.hash !== currentHash
  3. チェックに失敗した場合currentHash = window.location.hash
  4. setIntervalonを使用してこの関数を実行しますDOMReady
于 2012-09-06T16:21:17.183 に答える
0

Sammy.jsはここでのあなたの友達です。私は自分が取り組んでいるスパでそれを使用しました、そして私はそれが大好きです!

于 2012-09-06T16:23:07.863 に答える