0

ajax リクエストの後、画像要素の src 属性が変わらないという問題が発生しています。要素は、.html(data) 関数 @ コールバック関数で「置換」される別の要素の「内部」要素です。奇妙なことに、先ほど述べたように src 属性がソース コードの最後の画像の経路を示しているにもかかわらず、新しい画像が表示されるはずです。

JS は次のとおりです。

    $('.toplistimages').each(function(){
    var filepath = $(this).attr('src');
    var next = "next"
    $(this).click(function(e){
        e.preventDefault();
        $.ajax({
            type: 'POST',
            url: '?category=goto',
            data: {
                "filepath" : filepath,
                "next" : next
            },
            success: function(data){
                $('#rightvotecolumn').html(data);
            }
        });
        return false;
    });
});

コンテンツは正常に置き換えられますが、src 属性は同じままです。

編集: ajax リクエストの後に表示される画像を保存しようとすると、正しいファイル名が表示されることを追加することもできます。私はFirefoxとChromeでこれを試しています

4

2 に答える 2

2

[ソースを表示] オプションでソース コードを確認するのではなく、Chrome または Firefox で F12 を使用してコンソールで確認することをお勧めします。

なぜなら、後で追加された動的データはページ ソースで見ることができないからです。

于 2012-10-18T10:51:44.527 に答える
1

このような動作の理由は、実際のsrc値を 1 回だけ取得し、その値を各clickイベント ハンドラーで使用するためです。これを修正するには、クリック イベントごとにファイル名変数の値を設定します。

$('.toplistimages').each(function(){
var next = "next"
$(this).click(function(e){
    e.preventDefault();
    var filepath = $(this).attr('src');
    $.ajax({
        type: 'POST',
        url: '?category=goto',
        data: {
            "filepath" : filepath,
            "next" : next
        },
        success: function(data){
            $('#rightvotecolumn').html(data);
        }
    });
    return false;
});

});

于 2012-10-18T10:54:10.717 に答える