基本的に、アンカーを変更するリンク(URLの#記号の後の部分)をページ全体に配置したいと思います。URLのその部分が変更されると、JavaScriptが応答するはずです。
すべてのリンクにonclickメソッドを追加できますが、もっと良い方法はありますか?
基本的に、アンカーを変更するリンク(URLの#記号の後の部分)をページ全体に配置したいと思います。URLのその部分が変更されると、JavaScriptが応答するはずです。
すべてのリンクにonclickメソッドを追加できますが、もっと良い方法はありますか?
$(window).bind('hashchange', function() {
// code here
});
それがそれをするべきだと思う
それはアンカーではありません、それはハッシュですか?
$(window).on('hashchange', function() {
alert('My fracking hash changed to : '+document.location.hash);
});
jQueryでは、個々のすべてのリンクにonclickイベントを追加する必要はありません。このようなセレクターを使用する$('a')
と、すべてのリンクにイベントを一度に追加できます。
$('a').click(function(){
// code here
});
このイベント内では、$(this)
オブジェクトを使用してを取得できますhref
。
しかし、他の答えは、この問題を解決するためのよりエレガントな方法を示していることをお勧めします。
まず、要素を選択する必要があります。
たとえば、varlinks = $( "a");
次に、jquery関数.click()を追加します
にデリゲートを追加できますa
、
$(elements).on(events、selector、data、handler);
違いは、onClick
すべての要素に「」を追加するわけではありませんが、「 」イベントをa
キャッチすることです。onClick
a
これを試して
window.location.hash
します。たとえば、currentHash
window.location.hash !== currentHash
currentHash = window.location.hash
setInterval
onを使用してこの関数を実行しますDOMReady
Sammy.jsはここでのあなたの友達です。私は自分が取り組んでいるスパでそれを使用しました、そして私はそれが大好きです!