0

我遇到了一个问题,即图像元素的 src 属性在 ajax 请求后保持不变。该元素是另一个元素的“内部”元素,它被 .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 在控制台中检查它。

因为,后面添加的动态数据在Page Source中是看不到的。

于 2012-10-18T10:51:44.527 回答
1

这种行为的原因是您src只获得一次实际值并在每个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 回答