ul
リストを反復処理するために JQuery を使用.on('click'...)
しています。現在クリックされているクラスにクラスを追加しli
、以前に選択したクラスからクラスを削除したいと考えています。li
jsFIDDLE はこちら: jsfiddle リンク
HTML:
<div id="divisionMenus">
<ul>
<li>Type 01</li>
<li>Type 02</li>
<li>Type 03</li>
<li>Type 04</li>
</ul>
</div>
<p class="results"></p>
CSS:
#divisionMenus {
width: 220px;
min-height: 220px;
position: absolute;
top: 30px;
left: 5px;
background-color: #003399;
}
#divisionMenus ul {
list-style: none;
margin: 0;
padding: 0;
}
#divisionMenus ul li {
padding: 18px;
border-top: 3px solid #111;
font-weight: bold;
cursor: pointer;
}
#divisionMenus ul li:hover {
background-color: #c0dde8;
color: #111;
}
.currentType {
background-color: #c0dde8;
color: #111;
}
.results {
display: none;
}
JQuery:
$(document).ready(function () {
// select list items in list
$devisionProductTypes = $('#divisionMenus').children().children();
$devisionProductTypes.each(function (index) {
$(this).on('click', $(this), function() {
$productType = $(this);
$productTypeTitle = $productType.text();
$otherProductTypes = $productType.not($(this));
if (!$productType.hasClass('currentType')) {
$productType.addClass('currentType');
$otherProductTypes.removeClass('currentType');
$('.results').show('fast').text('You have selected ' + $productTypeTitle);
} else {
$productType.removeClass('currentType');
$otherProductTypes.removeClass('currentType');
}
});
});
});
div img
サイズを切り替えるために、同じロジックを使用していくつかを反復し、そこで機能しました。しかし、ここではありません。私は何かを見逃していますか、それとも私はこれに完全に間違っています。