0

jqueryでifステートメントを作成しようとしていますが、それを機能させることができません .jsフィドルを作成しました

コードも

HTML:

<div class="playlist-player shrink"></div>

Javascript:

if($('.playlist-player').hasClass('shrink')) {
    $(".playlist-player").mousedown(function(){
        $(".playlist-player").addClass("enlarge").removeClass("shrink");
    });
} else {
    $(".playlist-player").mousedown(function(){
        $(".playlist-player").addClass("shrink").removeClass("enlarge");
    });
}

CSS:

.shrink {background-color:red;}
.enlarge {background-color:blue;}
.playlist-player {height:20px; width:20px;}
4

6 に答える 6

3

You don't need if else addClass removeClass You can do that with toggleClass() -

$(".playlist-player").mousedown(function () {
   $(this).toggleClass("enlarge").toggleClass("shrink");
});

http://jsfiddle.net/mohammadAdil/Uk67u/8/

于 2013-04-29T16:30:49.000 に答える
1

これを試して

$(".playlist-player").mousedown(function(){
    if ($('.playlist-player').hasClass('shrink')) {
        $(".playlist-player").addClass("enlarge").removeClass("shrink");}
    else {        
        $(".playlist-player").addClass("shrink").removeClass("enlarge");}
}
于 2013-04-29T16:29:48.117 に答える
1
$(".playlist-player").mousedown(function(){
    if($(this).hasClass("shrink")){
        $(this).addClass("enlarge").removeClass("shrink");
    }else{
        $(this).addClass("shrink").removeClass("enlarge");
    }
});

Working Example http://jsfiddle.net/Uk67u/4/

于 2013-04-29T16:31:12.730 に答える
0

You're only checking if it has the class once, you want to check after each click:

$('.playlist-player').mousedown(function() {
    if ($(this).hasClass('shrink')
        $(".playlist-player").addClass("enlarge").removeClass("shrink");
    else 
        $(".playlist-player").addClass("shrink").removeClass("enlarge");
}
于 2013-04-29T16:30:43.370 に答える
0

Try this:

$(".playlist-player").mousedown(function () {
    $(this).toggleClass("enlarge shrink");

    // You can also check the console for class
    console.log($(this).attr('class'));
});

WORKING FIDDLE

于 2013-04-29T16:30:50.343 に答える