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 回答