0

Jqueryelse条件付きが機能していません。#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 を追加しないと失敗することにも注意してください。これはうまくいくはずです。ただし、目的の機能によっては、内部識別子を $('.design-button') ではなく $(this) に変更することを検討してください。

$('.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 に答える