0

2 つのアクション間の同期に問題があります。最初のリンクで:

<a href="#mytag1">Link 1</a>
<a href="#mytag2">Link 2</a>
<a href="#mytag3">Link 3</a>

そして、JQuery イベント バインディング:

$('a').click(function(){recognize_content_by_link()});

この関数は、他の関数 (geturl() とします) window.location.href を使用して取得し、それを解析して「#mytagX」を取得し、コンテンツをロードします。

問題は、最初に href を設定し、次に window.location から URL を取得して、バインドされた関数で解析する必要があることです。ここに投稿する前に、recored_content_by_link() 内で使用される geturl() 関数の setTimenterval によってそれを遅らせようとしましたが、それは不十分な解決策です。何か案は?本当にすぐに必要です - 試験時間:(助けてくれてありがとう!

(私の言語で申し訳ありません)

4

3 に答える 3

1

timeout と delay を使用して、イベントの後にキューに入れます0

$('a').click(function() {
  setTimeout(function() {
    recognize_content_by_link();
  }, 0);
});
于 2013-01-11T23:49:38.520 に答える
0

名前付き関数を使用してこれを行うことができます:

$('a').click(recognize_content_by_link);

function recognize_content_by_link(event) {
    event.preventDefault();
    var hash = this.hash.replace(/^[#]/, '');
    ....
}

または無名関数:

$('a').click(function(event) {
    event.preventDefault();
    var hash = this.hash.replace(/^[#]/, '');
    ....
});
于 2013-01-12T00:26:45.240 に答える
0

これが必要だと思います:

$('a').click(function(e){
   e.preventDefault();
   recognize_content_by_link();
});
于 2013-01-11T23:50:04.680 に答える