0

Jquery else 条件不起作用。当我#webul li第一次单击时背景位置更改为0 144但当我再次单击时没有任何反应。

$('.design-button').click(function() {
    $('#webul li ').not('.design').toggle(500)
    if($('.design-button').css("background-position", "0 0px")){
        $('.design-button').css("background-position", "0 144px")
    }
    else {
        $(".design-button").css("background-position", "0 0px")
    }
});
4

2 回答 2

1
if($('.design-button').css("background-position", "0 0px")){

始终为..您不是在此处检查值,而是在分配它,这使得该语句始终为真..进行此更改

if($('.design-button').css("background-position") == "0 0px")){
于 2012-09-28T17:48:49.950 回答
0

如果您不将 px 添加到属性中,您还会注意到它会失败。这应该有效。但是,根据预期的功能,您可以考虑将内部标识符更改为 $(this) 而不是 $('.design-button')

$('.design-button').click(function() {   
     $('#webul li ').not('.design').toggle(500);

    if($('.design-button').css("background-position") == "0px 0px"){         
        $('.design-button').css("background-position", "144px"); 
     } 
    else { 
         $('.design-button').css("background-position", "0px 0px");
    } 
}); 

http://jsfiddle.net/kJ7Ew/3/

于 2012-09-28T18:07:31.870 回答