javascript - 使用 jQuery 设置背景图像仅更改背景一次

标签 javascript jquery switch-statement background-image

我正在尝试根据变量的值设置一个元素的 background-image 属性。它仅在第一次有效。当我切换到就绪状态时,背景图像停止变化。图像本身很小 - 大约 8-10 kB。

这是我的代码:

if(status != '') {
    console.log('status');
    console.log(status);

    switch(status) {
        case 'dev':
            $('#status').css('background-position','0px -160px');
            break;
        case 'ready':
            $('#status').css('background-position','0px -240px');
            break;
        case 'soon':
            $('#status').css('background-position','0px 0px');
            break;
        case 'design':
            $('#status').css('background-position','0px -80px');
            break;
    }
    }

这里是该元素的 CSS:

#status {
z-index: 1;
float: right;
height: 80px;
width: 80px;
background: url(/images/front/status-sprite.png);
background-position: 0px -160px;
margin: 0 10px 0 0;
}

行为没有改变。背景图像会更改为就绪状态,但不会更改回来。

编辑:使用 csssprites.com 生成的 Sprite 更新代码.

最佳答案

您的代码看起来不错,我建议验证您尝试显示的每个图像的路径是否存在。 (尽管如果路径正确,您可以使用 !important 标记覆盖样式表)

fiddle

虽然这并不重要,但没有必要将 background-image 上的 url() 括起来带有双引号的属性。

$('#status').css('background-image','url(/images/front/status-design.png)');

关于javascript - 使用 jQuery 设置背景图像仅更改背景一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15944127/

相关文章:

jquery - 将jquery mobile中的所有点击事件替换为tap以加快速度

javascript - 如何在此 JSON 响应中访问 browser 和 browser_version?

java - 为什么 Java 在完全覆盖的枚举之后需要死返回语句?

javascript - 为什么我的方法看不到 this.property?

javascript - Angular - map 总是返回未定义

javascript - useState 我做错了什么?

javascript - 如何将条件测试发送到 Javascript 函数而不仅仅是结果?

swift - 为 switch 中的所有案例展开关联值

android - 在 Android 应用中切换大小写

javascript - 如何优化我的例程以从数组构建 HTML 图 block ?