привет всем, кто я проектирую страницу для панели регистрации здесь, на этой странице. Я использую радиокнопку с ярлыком в разных разных li с разным значением. мой дизайн
<div class="usertype">
<ul>
<li id="bathroomslct"><label>Bathrooms:</label>
<input type="radio" name="Bathrooms" value="1" id="Bathrooms1" /><label class="new-label" for="Bathrooms1">1</label>
<input type="radio" name="Bathrooms" value="2" id="Bathrooms2" /><label class="new-label" for="Bathrooms2">2</label>
<input type="radio" name="Bathrooms" value="3" id="Bathrooms3" /><label class="new-label" for="Bathrooms3">3</label>
<input type="radio" name="Bathrooms" value="4" id="Bathrooms4" /><label class="new-label" for="Bathrooms4">4</label>
</li>
<li> <label>Furnished</label>
<input type="radio" name="Furnished" value="Unfurnished" id="Unfurnished" /><label class="new-label" for="Unfurnished">Unfurnished</label>
<input type="radio" name="Furnished" value="Semifurnished" id="Semifurnished" /><label class="new-label" for="Semifurnished">Semifurnished</label>
<input type="radio" name="Furnished" value="Furnished" id="Furnished" /><label class="new-label" for="Furnished">Furnished</label>
</li>
</ul>
</div>
здесь я использую этот скрипт для выбора переключателя
<script>
$(window).load(function(){
$(".usertype ul li#bathroomslct label.new-label label").click(function () {
$(".usertype ul li#bathroomslct label.new-label label").not(this).removeClass("selected").addClass('unselected')
$(this).toggleClass("unselected").toggleClass("selected");
});
});
</script>
так как я исправляю свою проблему, не выбранную для разных ли...
Вот рабочий пример: DEMO
$(document).ready(function () {
$(".usertype li .new-label, .usertype li input").click(function (e) {
console.log(e.target.tagName);
if (e.target.tagName === "INPUT") {
$(this).next("label").addClass("selected").removeClass("unselected")
.siblings(".new-label").addClass("unselected").removeClass("selected");
}
});
});
Поскольку вы используете атрибут for="..."
на своих ярлыках, событие click срабатывает дважды, когда вы нажимаете метку. Вам нужно поймать только input
клики.
Вы также можете добавить selected
и unselected
классы в свои элементы с самого начала.
РЕДАКТИРОВАТЬ
Просто заметили, что вы хотите изменить цвет фона, поэтому я обновил его в демоверсии
$(window).load
а у меня есть $(document).ready
пытаться
jQuery(function ($) {
$('.usertype li input[type="radio"]').change(function () {
var $next = $(this).next().removeClass('unselected').addClass('selected');
$(this).siblings('.new-label').not($next).removeClass('selected').addClass('unselected');
});
});
Демо: скрипка
Если я правильно вас понимаю, ваш селектор jQuery ошибочен. + Изменить
$(".usertype ul li#bathroomslct label.new-label label")
В
$(".usertype ul li#bathroomslct label.new-label")