Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.02.2016, 13:49
Аспирант
Отправить личное сообщение для Heny Посмотреть профиль Найти все сообщения от Heny
 
Регистрация: 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'). Подскажите, что не так.
Ответить с цитированием
  #2 (permalink)  
Старый 17.02.2016, 14:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Покажите код кнопок, включая родителей и прочих к которым обращение.

else if ($("#s3").is(":checked")) - меняя только селектор, и опять id (!), а действия одинаковые, так не стоит делать.
Ответить с цитированием
  #3 (permalink)  
Старый 18.02.2016, 07:16
Аспирант
Отправить личное сообщение для Heny Посмотреть профиль Найти все сообщения от Heny
 
Регистрация: 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.
Ответить с цитированием
  #4 (permalink)  
Старый 18.02.2016, 09:28
Аспирант
Отправить личное сообщение для Heny Посмотреть профиль Найти все сообщения от Heny
 
Регистрация: 27.01.2016
Сообщений: 35

Все получилось, когда поправила так:
if($("#s1").is(":checked")) {
		  $('ul.color').on('click', 'li', function() {
			      $('.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").is(":checked")) {
		  $('ul.color').on('click', 'li', function() {
			      $('.3d').find('div.sp-v div.image').removeClass('active').eq($(this).index()).addClass('active');
			      $('.3d').find('div.sm-v div.image').removeClass('active');

		  });
	};


Ответить с цитированием
  #5 (permalink)  
Старый 18.02.2016, 10:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Heny,
попробуйте никогда не назначать клик в клике и вы спасёте ресурсы браузера и клиента
Ответить с цитированием
  #6 (permalink)  
Старый 18.02.2016, 14:16
Аспирант
Отправить личное сообщение для Heny Посмотреть профиль Найти все сообщения от Heny
 
Регистрация: 27.01.2016
Сообщений: 35

if($("#s1").is(":checked")) {
          $('ul.color').on('click', 'li', function() {

так нельзя?

Почему-то вся данная конструкция не работает в IE((( Не подскажете в чем загвоздка?
Ответить с цитированием
  #7 (permalink)  
Старый 18.02.2016, 14:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Heny
так нельзя?
так ненужно
лучше опишите алгоритм того что хотите сделать
Ответить с цитированием
  #8 (permalink)  
Старый 19.02.2016, 15:33
Аспирант
Отправить личное сообщение для Heny Посмотреть профиль Найти все сообщения от Heny
 
Регистрация: 27.01.2016
Сообщений: 35

Так наверное лучше посмотреть?
вот тут сижу ковыряю
http://www.laminar.ru/test/test-6.html
Ответить с цитированием
  #9 (permalink)  
Старый 20.02.2016, 07:24
Аспирант
Отправить личное сообщение для Heny Посмотреть профиль Найти все сообщения от Heny
 
Регистрация: 27.01.2016
Сообщений: 35

А не работает вот это:
else if ($("#s2, #s3").is(":checked")) {

Как надо написать для IE?
Ответить с цитированием
  #10 (permalink)  
Старый 20.02.2016, 17:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условие jQuery Flector jQuery 6 18.07.2015 00:37
Условие к jquery событиям Mir jQuery 5 26.08.2014 14:52
jquery условие для click функции Sergey_dn jQuery 2 02.07.2014 23:56
Условие по количеству элементов. (JQuery) Слейп jQuery 2 26.12.2012 15:56
Как задать условие в jquery чтобы он проводил линию.. voloxa89 Элементы интерфейса 7 17.08.2011 10:00