0

プロジェクトを選択できるポートフォリオページがあり、詳細が表示されます。

私はフィドルを持っています: http://jsfiddle.net/TxKqx/

私がやりたいことは、ユーザーが表示するプロジェクトを既に選択している場合、別のプロジェクトの選択を解除して詳細をフェードアウトするために別のプロジェクトを選択した場合です。

プロジェクトを開いて選択するための次のコードがあります。

$('.widget-item-expand').click(function() {
        $(this).parent().toggleClass("selected");
        var currentId = $(this).parent().attr('id');
        var currentIdfull = "#"+currentId+"-full";
        $('#port-full-item').css("height","320px");
        $('#port-full-item').slideDown('slow');
        $(currentIdfull).css("height","320px");
        $(currentIdfull).fadeToggle('slow');
});
​

私はそれを解決するためにこの方法を試しましたが、うまくいきません:(この正確なコードではありません)

if ($('#elm').is('.selected')) {
//#elm has the class
} else {
//#elm doesn't have the class
}

どんな助けでも感謝します。

4

1 に答える 1

2

あなたが何を望んでいるのかよく理解できたと思います。

http://jsfiddle.net/TxKqx/2/を参照してください

$('.widget-item-expand').click(function() {
    $(this).parent().siblings('.selected').removeClass('selected');
    $(this).parent().toggleClass("selected");
    $('#port-full-item')
        .addClass('selected')
        .css("height","320px")
        .slideDown('slow');
    var currentId = $(this).parent().attr('id'),
        $prevFull=$(".widget-full.selected");
    if(currentId+'-full'!==$prevFull.attr('id')){
        $prevFull
            .hide()
            .removeClass('selected');
    }
    $("#"+currentId+"-full")
        .addClass('selected')
        .css("height","320px")
        .fadeToggle('slow');
});
于 2012-09-07T23:47:04.637 に答える