Добавление класса определенному элементу jQuery
Есть вот такой код:
<div class="chosen-container"> <a class="chosen-single"> <span>Указать</span> </a> <div class="chosen-drop"> <ul class="chosen-results"> <li class="active-result">пункт 1</li> <li class="active-result">пункт 2</li> <li class="active-result">пункт 3</li> <li class="active-result">пункт 4</li> </ul> </div> </div> Таких вот кусков очень много. Это что-то типо select тегов, точнее они и есть (chosen скрипт) Задача была такой: 1) Если по классу "active-result" был клик, то ему же присваивается еще один класс "activ_click" 2) Потом идет проверка, если у элемента есть класс "activ_click", то классу "chosen-single" присваивается класс "in_compl", а если нет, то класс "in_disabl". Вообщем это что-то типо проверки на заполненность поля, если поле было заполнено, то он выделится зеленым (класс "in_compl") если нет, то красным (класс "in_disabl") Все бы хорошо, то вот если к примеру у одного поля пользователь кликнул по одному из пунктов (по классу "active-result"), то потом класс "in_compl" добавляется вообще ко всем полям. Т.е. ко всем "chosen-single" которые есть на странице. А нужно что бы именно к тому, в котором был клик. Вот часть кода:
$('.active-result').live("click", function() {
$(this).addClass('activ_click');
});
$('.butt_panel.se2 .butt_next').click(function() {
$('.chosen-single').each(function() {
if ( $(".active-result").hasClass("activ_click") ) {
$(this).removeClass('in_disabl');
$(this).addClass('in_compl');
} else {
$(this).addClass('in_disabl');
}
});
});
Вижу, что он будет применен ко всем элементам "chosen-single". Но не знаю как и что добавить, прошу вашей помощи. Если можно на примерах. Надеюсь не запутаетесь, а то чтот загнул тут с классами) |
Цитата:
|
Как вариант...
<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
.activ_click {
color: red;
}
.in_compl {
background-color: yellow;
}
</style>
<script type='text/javascript'>
$(function (){
$('.active-result').click(function (){
$(this).toggleClass('activ_click');
var ob=$(this).parents('.chosen-container');
var o=ob.find('.chosen-single');
if (ob.find('.active-result').hasClass('activ_click')) {
o.addClass('in_compl');
} else {
o.removeClass('in_compl');
};
});
});
</script>
</head>
<body>
<div class="chosen-container">
<a class="chosen-single">
<span>Указать</span>
</a>
<div class="chosen-drop">
<ul class="chosen-results">
<li class="active-result">пункт 1</li>
<li class="active-result">пункт 2</li>
<li class="active-result">пункт 3</li>
<li class="active-result">пункт 4</li>
</ul>
</div>
</div>
<div class="chosen-container">
<a class="chosen-single">
<span>Указать</span>
</a>
<div class="chosen-drop">
<ul class="chosen-results">
<li class="active-result">пункт 1</li>
<li class="active-result">пункт 2</li>
<li class="active-result">пункт 3</li>
<li class="active-result">пункт 4</li>
</ul>
</div>
</div>
</body>
</html>
|
| Часовой пояс GMT +3, время: 21:14. |