如何在点击jQuery时替换元素的背景图像?

Mik*_*ngs 0 jquery if-statement background-image

我想写一个与此类似的声明:

$("#something").click(function() {
    $('#something').css('background-image', 'url(image1.jpg)');
});
Run Code Online (Sandbox Code Playgroud)

但我想做的是说:

  • 如果#something背景是image1.jpg并且单击它,则替换为image2.jpg

  • 如果#something背景是image2.jpg并点击它,那么用image1.jpg替换

我怎样才能做到这一点?

Bar*_*mar 8

$("#something").click(function() {
    $(this).css('background-image', function(i, curimage) {
        if (curimage == 'url(image1.jpg)') {
            return 'url(image2.jpg)';
        } else {
            return 'url(image1.jpg)';
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

当第二个参数to .css()是一个函数时,它接收当前值并返回新值.

  • 传递给`css()`的函数有两个参数:索引,第一个和当前值,*second*.(你的六个赞成没有人测试答案让我有点畏缩.) (2认同)