Нажатием переключите выбранный класс div и измените классы невыбранных div.

0

вот что я до сих пор. http://jsfiddle.net/nSfWs/

Прямо сейчас, когда пользователь нажимает на div продукта, появляется зеленое поле, добавляя класс "selected" в div продукта. Я бы также хотел, чтобы класс "unselected" добавлялся, оставаясь двумя невыбранными разделителями продуктов. Следовательно, у одного div будет зеленый квадрат/граница, а два других будут исчезать с помощью фильтра непрозрачности.

Может кто-нибудь помочь мне сделать эту работу? Это кажется достаточно простым, но это сводит меня с ума. Благодарю!

А для тех, кто не хочет нажимать на ссылку jsfiddle, вот код.

<style type='text/css'>
    div.product {
    display:inline-block;  
    vertical-align:top;
    text-align:center;
    width:auto;
    margin:0 47px 0 0;
    padding:24px 22px 20px 27px;
    border:1px solid transparent;
    }

    div.product:last-child {
    margin:0px;
    }

    div.product:hover {
    border:1px solid #878787;
    -moz-border-radius:3px;
    border-radius:3px;
    }

    div.product.unselected {
    opacity:0.6;
    filter:alpha(opacity=60);
    }

    div.product.selected {
    border:1px solid #32a24e;
    -moz-border-radius:3px;
    border-radius:3px;
    }
</style>    
<script type='text/javascript' src='//code.jquery.com/jquery-1.10.1.js'></script>
<script type='text/javascript'>//<![CDATA[ 
    $(window).load(function(){
        $(".product").click(function () {
            $(this).toggleClass("selected");
        });
    });//]]>
//]]>  

</script>

<div class="product">
    <div class="itemImage"><img src="http://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png" alt="Model 11710" width="85" height="146" /></div>
    <div class="description">1</div>
</div>

<div class="product">
    <div class="itemImage"><img src="http://upload.wikimedia.org/wikipedia/en/b/bc/Wiki.png" alt="Model 11710" width="85" height="146" /></div>
    <div class="description">2</div>
</div>

<div class="product">
    <div class="itemImage"><img src="http://upload.wikimedia.org/wikipedia/en/thumb/0/0f/Plectrophenax_nivalis1.jpg/320px-Plectrophenax_nivalis1.jpg" alt="Model 11710" width="85" height="146" /></div>
    <div class="description">3</div>
</div>

5 ответов

6

Просто удалите класс из братьев и сестер:

    $(".product").click(function () {
        $(this).toggleClass('selected').siblings().removeClass("selected");
    });
1

просто удалите класс из других div на событие click,

$(window).load(function(){
    $(".product").click(function () {
        $(".product").removeClass("selected")
        $(this).toggleClass("selected");
    });
});

и вы можете переключить другой класс,

$(".product").click(function () {
        $(".product").not(this).removeClass("selected").addClass('unselected')
        $(this).toggleClass("unselected").toggleClass("selected");
});

Смотрите, что я редактировал

0

Попробуйте использовать siblings() чтобы изменить класс оставшихся div s.

$(this).siblings("product").addClass("unselected");

0

Попробуй это:

$(".product").click(function () {
    $(".product").removeClass("unselected");
    $(".product").removeClass("selected");
    $(this).addClass("selected").siblings().addClass("unselected");
});

скрипка

  • 0
    Спасибо! Это сработало отлично.
0

Попробуй это

$(window).load(function(){
    $(".product").click(function () {
        $(".product").removeClass("selected").addClass("unselected");
        $(this).removeClass("unselected").addClass("selected");
    });
});

скрипка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню