如何在两个图像之间切换 img 的 src 值?

How can I toggle an img's src value between two images?

我想切换 img 的 src 值,以便我第一次单击它时,它会更改为另一个图像,第二次,它会恢复为原始图像。

img 在HTML 中是这样定义的:

<img id="imgPostTravel" name="imgPostTravel" src="/_layouts/images/TravelFormHelp/posttravelpdf.png" alt="post Travel image" height="275" width="350">

我可以用这个把第一张图片换成第二张 jQuery:

$('#imgPostTravelTopRight').click(function () {
    $('#imgPostTravelTopRight').attr('src', '/_layouts/images/TravelFormHelp/posttravelpdf.png');
});

我试过这个来切换 img src:

$('#imgPostTravelTopRight').toggle(function () {
    $('#imgPostTravelTopRight').attr('src', '/_layouts/images/TravelFormHelp/posttravelpdf.png');
}, function () {
    $('#imgPostTravelTopRight').attr('src', '/_layouts/images/TravelFormHelp/2_PTE_Top_Right_Jig.png');
});

...但它不起作用。我读到 "toggle" 已被弃用,我试过这个:

if $(('#imgPostTravelTopRight').attr('src') == '/_layouts/images/TravelFormHelp/posttravelpdf.png') {
    $('#imgPostTravelTopRight').attr('src', '/_layouts/images/TravelFormHelp/2_PTE_Top_Right_Jig.png');
} else {
    $('#imgPostTravelTopRight').attr('src', '/_layouts/images/TravelFormHelp/posttravelpdf.png');
}

...但效果更差 - 事实上,它把 "everything" 全部粉碎 - 即使是在此之前需要 运行 的代码也不会 运行现在...

Stryner 搞定了;这有效:

$('#imgPostTravelTopRight').click(function () {
    if ($('#imgPostTravelTopRight').attr('src') == '/_layouts/images/TravelFormHelp/posttravelpdf.png') {
        $('#imgPostTravelTopRight').attr('src', '/_layouts/images/TravelFormHelp/2_PTE_Top_Right_Jig.png');
    } else {
        $('#imgPostTravelTopRight').attr('src', '/_layouts/images/TravelFormHelp/posttravelpdf.png');
    }
});

这可能不是最优雅的解决方案,但确实有效。

如果棒球是英寸游戏,那么编程就是小气符号游戏。不可能是别的,但就是这样。

您上次尝试失败的原因是语法错误:

if $(('#imgPostTravelTopRight').attr('src') == '/_layouts/images/TravelFormHelp/posttravelpdf.png') {
// ^ This should be ($( instead of $((

另一个解决方案是使用 .attr(name, function) 重载:

$('#imgPostTravelTopRight').attr("src", function(index, val) {
    return val == '/_layouts/images/TravelFormHelp/posttravelpdf.png' ?
       '/_layouts/images/TravelFormHelp/2_PTE_Top_Right_Jig.png' :
       '/_layouts/images/TravelFormHelp/posttravelpdf.png'
});