17.02.2016, 13:49
|
Аспирант
|
|
Регистрация: 27.01.2016
Сообщений: 35
|
|
Условие JQuery
Уважаемые гуру, подскажите, что делаю не то. Пишу так:
<script>
(function($) {
$(function() {
$( "div.radio" ).on( "click", function() {
if($("#s1").is(":checked")) {
$('ul.color').on('click', 'li', function() {
$(this)
.addClass('active').siblings().removeClass('active')
.closest('div.3d').find('.sm-v div.image').removeClass('active').eq($(this).index()).addClass('active');
});
}
else if ($("#s2").is(":checked")) {
$('ul.color').on('click', 'li', function() {
$(this)
.addClass('active').siblings().removeClass('active')
.closest('div.3d').find('.sp-v div.image').removeClass('active').eq($(this).index()).addClass('active');
});
}
else if ($("#s3").is(":checked")) {
$('ul.color').on('click', 'li', function() {
$(this)
.addClass('active').siblings().removeClass('active')
.closest('div.3d').find('.sp-v div.image').removeClass('active').eq($(this).index()).addClass('active');
});
}
});
});
})(jQuery);
</script>
Это условия для чекнутых радиобатаннов, они срабатывают, но когда я возвращаюсь и кликаю например снова на #s1 (после s2/s3), то не выполняется условие .find('.sm-v div.image'), а так и продолжает выполняться .find('.sp-v div.image'). Подскажите, что не так.
|
|
17.02.2016, 14:19
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Покажите код кнопок, включая родителей и прочих к которым обращение.
else if ($("#s3").is(":checked")) - меняя только селектор, и опять id (!), а действия одинаковые, так не стоит делать.
|
|
18.02.2016, 07:16
|
Аспирант
|
|
Регистрация: 27.01.2016
Сообщений: 35
|
|
Сообщение от laimas
|
else if ($("#s3").is(":checked")) - меняя только селектор, и опять id (!), а действия одинаковые, так не стоит делать.
|
Пробовала объединить && - не работал код, наверное потому что коряво писала)))
Код:
<div class="radio">
<input type="radio" name="gender" id="s1" value="Металл"><label for="s1">Металл</label>
<input type="radio" name="gender" id="s2" value="Пластик импортный"><label for="s2">Пластик импортный</label>
<input type="radio" name="gender" id="s3" value="Пластик российский"><label for="s3">Пластик российский</label>
</div>
<ul class="color">
<li id="1013"><img src="/multifile/2678/1013.png"></li>
<li id="1015"><img src="/multifile/2678/1015.png"></li>
<li id="1019"><img src="/multifile/2678/1019.png"></li>
<li id="2009"><img src="/multifile/2678/2009.png"></li>
</ul>
Последний раз редактировалось Heny, 18.02.2016 в 08:54.
|
|
18.02.2016, 09:28
|
Аспирант
|
|
Регистрация: 27.01.2016
Сообщений: 35
|
|
|
|
18.02.2016, 10:34
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Heny,
попробуйте никогда не назначать клик в клике и вы спасёте ресурсы браузера и клиента
|
|
18.02.2016, 14:16
|
Аспирант
|
|
Регистрация: 27.01.2016
Сообщений: 35
|
|
if($("#s1").is(":checked")) {
$('ul.color').on('click', 'li', function() {
так нельзя?
Почему-то вся данная конструкция не работает в IE((( Не подскажете в чем загвоздка?
|
|
18.02.2016, 14:23
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Сообщение от Heny
|
так нельзя?
|
так ненужно
лучше опишите алгоритм того что хотите сделать
|
|
20.02.2016, 07:24
|
Аспирант
|
|
Регистрация: 27.01.2016
Сообщений: 35
|
|
А не работает вот это:
else if ($("#s2, #s3").is(":checked")) {
Как надо написать для IE?
|
|
20.02.2016, 17:24
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Heny,
если клик по ссылке отмените переход, если сто раз назначаите клик , отмените предыдущие клики.
<script>
(function($) {
$(function() {
$('ul.btn').on('click', 'li:not(.active)', function(event) {
event.preventDefault();
$('.3d').find('div.variant div.el').removeClass('active').eq($(this).index()).addClass('active');
});
});
})(jQuery);
</script>
<script>
(function($) {
$(function() {
$( "div.radio" ).on( "click", function() {
if($('#pol1').is(":checked")) {
$('#pol').find('div.panel2').removeClass('el1');
$('#pol').find('div.panel22').addClass('el1');
$('ul.color2').off().on('click', 'li', function(event) { event.preventDefault();
$('.konf3d').find('div.pl div.image').removeClass('active').eq($(this).index()).addClass('active');
$('.konf3d').find('div.pn div.image').removeClass('active');
});
}
else if($('#pol2').is(":checked")) {
$('#pol').find('div.panel22').removeClass('el1');
$('#pol').find('div.panel2').addClass('el1');
$('ul.color3').off().on('click', 'li', function(event) { event.preventDefault();
$('.konf3d').find('div.pn div.image').removeClass('active').eq($(this).index()).addClass('active');
$('.konf3d').find('div.pl div.image').removeClass('active');
});
};
if($("#s1").is(":checked")) {
$('ul.color').off().on('click', 'li', function(event) { event.preventDefault();
$('.3d').find('div.sm-v div.image').removeClass('active').eq($(this).index()).addClass('active');
$('.3d').find('div.sp-v div.image').removeClass('active');
});
}
else if ($("#s2:checked, #s3:checked").length) {
$('ul.color').off().on('click', 'li', function(event) { event.preventDefault();
$('.3d').find('div.sp-v div.image').removeClass('active').eq($(this).index()).addClass('active');
$('.3d').find('div.sm-v div.image').removeClass('active');
});
};
});
});
})(jQuery);
</script>
Последний раз редактировалось рони, 24.02.2016 в 09:05.
|
|
|
|