0

初めてajaxをいじっています。

現在、URLに従ってテキストファイルからテキストを読み込んでいます。

これが私がやっている方法です:

var home_url = "blahblah/index.html#home";
var test_url = "blahblah/index.html#test";

$(document).on("click",".ajax_load",function(){
    if (location.href === home_url) {
        $("#main").load("src/home.txt");
    };
    if (location.href === test_url) {
        $("#main").load("src/test.txt");
    };  
});

これは機能しますが、ボタンを 2 回押すまでコンテンツが読み込まれません。理解しやすい:

button press -> 2nd button press -> content loaded

これは、コードが最初に押すまでURLを登録せず、ステートメントがコンテンツをロードする必要があるかどうかを確認するために発生すると思いますがif、これはボタンが再度クリックされるまでトリガーされます。

ボタンを 1 回押すだけでコンテンツをロードできるように手伝ってくれる人はいますか?

ありがとう。

4

1 に答える 1

3

問題は、イベントが発生した後にリンクが「location.href」を変更することです。したがって、最初にクリックすると、間違った (または何もない) ajax-load コードが実行され、その後 URL が変更されるため、2 回目のクリックで正しい URL がチェックされます。

したがって、私が提案する解決策は次のとおりです。場所のURLを確認するのではなく、リンクで指定したURLを確認してください。

$('.ajax_load').bind('click', this, function(){
    if (this.href === home_url) {
        $("#main").load("src/home.txt");
    };
    if (this.href === test_url) {
        $("#main").load("src/test.txt");
    };
});

注意: リンクが単純なアンカーで指定されている場合でも、「this.href」には常に完全な URL が含まれます。

<a href="#home">home</a>
于 2012-09-19T20:49:40.567 に答える