0

这根本不适合我!

$("#about").mouseleave(function(){
                $("#about").css("background", 'transparent url("../resources/about.png") no-repeat top left;');
            });

我有一个 div 用作按钮,单击它会打开一个窗口。更相关的是,当点击时,它的背景会通过 css 换成较小的图像.mouseDown,以便给人一种按下按钮的印象。

但是,如果您将鼠标拖出 div 而不释放单击,我会尝试使其自动返回到更大的图像。事实上,它只是保持较小的图像。这是一个边缘案例,但我想修复它。

为什么上面的代码不起作用?我试过了.prop.css....我不知道我做错了什么。

4

4 回答 4

1

您需要使用css而不是attr. background不是元素本身的属性,而是元素的 css 属性。并删除 css prop 值末尾的 semi 列。

$(this).css("background", 'transparent url("../resources/about.png") no-repeat top left');

小提琴

于 2013-06-26T15:08:47.213 回答
1

background 不是属性,而是 css :

$("#about").mouseleave(function(){
    $(this).css('background', 'transparent url("../resources/about.png") no-repeat top left');
});
于 2013-06-26T15:08:47.050 回答
1

您应该删除top left样式。这对我来说非常好。

于 2013-06-26T15:19:56.050 回答
1

您需要使用.css()并从要分配的值中取出分号:

$("#about").mouseleave(function(){
     $("#about").css("background", 'transparent url("../resources/about.png") no-repeat top left');
});
于 2013-06-26T15:14:25.550 回答