次のマークアップを想像:あなたは、リンクをクリックした後に起こることのjQueryは、あなたがリンクをクリックした前があったhrefPage
はない警告ということで、今hrefを読む前にjQueryがhrefの変更を待つようにしますか?
$('a').click(function(){
var href = $(location).attr('href'),
hrefLenght = href.length,
hrefPos = href.indexOf("#"),
hrefPage = href.slice(hrefPos+1);
alert(hrefPage);
});
:
<a href="#link01">1</a>
<a href="#link02">2</a>
とをの後に、期待通りに。したがって:私はhttp://www.example.com/#link01
2に位置しています
1))私はリンク
3、結果をクリック)link01
、
3エコー予想)link02
され、これを修正する方法
に任意のアイデアをエコーされます?
EDIT:なぜhrefの代わりに場所を使用していますか?何もせずにページがhrefでロードされたときにも前述のコードが動作するようにしたいので、同じプロセスに対して2つのコードを書くのは良い考えだと思いませんか?
"ページの場所が変更されましたハンドラはリンククリックされたハンドラを持ちます。そのようには機能しません。初心者にとっては、「クリック」は最初に発生しますが、決してうまくいかない理由があります。代わりに、リンクの 'href'プロパティを取ってください。 –
質問を編集しました。 –
いいえ、リンクのクリックハンドラは、ページを読み込んだだけで魔法のようにトリガーされません。コードの重複を避けるには、ロジックを関数にカプセル化し、複数のハンドラで呼び出します。 –