0

Web ページでリンクをクリックすると、そのページのコンテンツが .load 関数を使用して取得されます。何も見つからない場合は、何も起こりません。現在の問題は、あるページから次のページに移動してから再び戻ると、コードが機能しないことです。

私のテストサイトに行く方がはるかに簡単です - http://joshblease.co.uk/JQuery/

  1. オレンジ色のリンク「ページ」をクリックします
  2. ヘッダー リンクの [インデックス] をクリックします。
  3. オレンジ色の「ページ」リンクをもう一度クリックします

ページが更新されますが、その理由がわかりません。

編集:現時点ではChromeを使用してこれをテストしています

編集:私のコード

function JLoad (url, elem, type) {
    if(type != "ext"){
        var $link = elem;
        var uri = url + ' #content';
        $("#content").load(uri, {'body_only': '1'}, function(response, status, xhr){
            if (status != "error") {
                if (window.history && window.history.pushState){
                    window.history.pushState({}, 'JoshBlease Test', url);
                }else{
                        window.location.hash='!/'+url;
                }
                if(type == "menu"){
                    $("a").removeClass("active");
                    $link.addClass("active");
                }
            }else{
                if(type == "menu"){
                    var linkText = $link.text();
                    $link.fadeOut(function(){$link.addClass("notFound").text("404 Error")}).fadeIn().delay(2000).fadeOut(function(){$link.removeClass("notFound").text(linkText)}).fadeIn();
                }
            }
        });
    }
};

これはページのヘッダーにあります:

$(document).ready(function() {
    $("a").on("click", function(event) {
        console.log("Click");
        event.preventDefault();
        var url = $(this).attr("href").replace('./', '');
        JLoad(url, $(this), $(this).attr("type"));
        return false;
    });
});

使用されているリンク:

<a href="page.php" type="content">Page</a>
4

1 に答える 1

0

理由はわかりませんが、古いバージョンの JQuery を使用することで、"on" イベントを "live" に置き換えました。今はうまくいくようですか?

于 2013-06-06T22:04:58.323 に答える