0

jqueryを使用してすべて/任意のハッシュタグ(#xxxxx)クリックをキャプチャする方法はありますか?それらを1つのクラスに分類することはできません。

4

3 に答える 3

3

次のコードで実行できます。

$('a[href*=#]').click( function() { /* do something */ } );

または、JamWafflesが指摘したように、より効率的な方法を使用できます。

$('body').on('click', 'a[href*=#]', function() { /* do something */ });

編集:

ページがURLに#hashでロードされているときに何かをしたい場合は、BenAlmanによるjQueryハッシュ変更プラグインを確認する必要があります。

これが基本的にページに追加する必要のあるコードです(この特定のケースでは上記のコードは必要ありません)

$(document).ready( function() {
   $(window).hashchange( function(){
        // Alerts every time the hash changes!
        alert( location.hash );  
    })
    if( location.href.indexOf('#') > -1 )
    {
        $(window).trigger('hashchange'); // this will trigger the first time the page is loaded if there is a hash in your url
    }
});
于 2012-08-06T05:49:20.540 に答える
0
$("a").each(function() {
    if ($(this).attr("href").indexOf("#") > -1) {
        $(this).bind("click", hashListener);
        // where hashListener is the name of your
        // tracking function.
    }
});
于 2012-08-06T05:50:31.913 に答える
0
$('a').click(function(){
  if($(this).attr('href').indexOf('#') == 0 || $(this).attr('href').indexOf(window.location.href+"#") == 0){
    // do your stuff here.
  }
});

このコードは、相対ハッシュタグと絶対ハッシュタグの両方を処理する必要があります。

于 2012-08-06T05:50:40.040 に答える