Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.03.2014, 15:07
Кандидат Javascript-наук
Отправить личное сообщение для cha0s Посмотреть профиль Найти все сообщения от cha0s
 
Регистрация: 21.10.2013
Сообщений: 125

Как повесить class на radio button без добавления для него событий типа onchange
<div class="results">
<div id="results">
<div position_title="1" id="option-242" class="option radio">

<div class="fields" style="margin-top:1px;">
    <input style="display:none;" type="radio" name="option[242]" value="92" id="option-value-92">
    <label class="spanradio" for="option-value-92">5 x 7</label>
    <input style="display:none;" type="radio" name="option[242]" value="93" id="option-value-93">
    <label class="spanradio" for="option-value-93">6 x 6</label>
</div>
</div>
</div>
</div>


Как при помощи JS при клике на label(radio кнопка все равно выделяется когда жмешь на label), добавился класс на этот label, без ввода всяких там вешаний на label onchange/onclick и т.д, зона действия начинается с $('.results') все радио кнопки которые в нем находятся(а их может быть не одна), при клике по label добавляли класс на этот label, при выборе другого label(радио кнопки), естественно класс уже ставился на эту, так как 2 выбрано кнопки не может быть одновременно.

ТИПА что-то

$('#results input:radio').change(function() { // все радио кнопки которые находятся в контейнере #results
    $(this).addClass("myclass");                    // на тот label(по идее они работают в связке с radio кнопкой - кнопка радио всеравно чекается от того что я жму по label рядом с ней который) который был нажат вешается класс.
});

Последний раз редактировалось cha0s, 26.03.2014 в 15:13.
Ответить с цитированием
  #2 (permalink)  
Старый 26.03.2014, 15:13
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от cha0s
при клике на label(не на радио кнопку), добавился класс на этот label, без ввода всяких там вешаний на label onchange/onclick
При клике но без onclick... Это сильно!
Ответить с цитированием
  #3 (permalink)  
Старый 26.03.2014, 15:22
Кандидат Javascript-наук
Отправить личное сообщение для cha0s Посмотреть профиль Найти все сообщения от cha0s
 
Регистрация: 21.10.2013
Сообщений: 125

Сообщение от ksa Посмотреть сообщение
При клике но без onclick... Это сильно!
все сложно, это все просто не hard code, движок генерирует все эти inputi, вот как у меня выглядят радио кнопки

то есть сами радио кнопки display:none; а это их label такие как кнопки сделаны, при клике на label соответственно и выделывается radio кнопка просто этого не видно, ну и в конце передается то что выбрано, мне надо при клике по этому label(или radio кнопке - она ведь так и так выделяется), на этот label вешался класс, короче вешался там где radio button как :checked я имел введу что такой вариант мне не подойдет типа:

<input style="display:none;" type="radio" name="option[242]" value="92" id="option-value-92">
    <label ONCLICK="......." class="spanradio" for="option-value-92">5 x 7</label>


а вот типа такого

$('......').change(function() подойдет, где не нужно дописывать к каждому label onclick=""... вообщем надеюсь что я не запутал)))
Ответить с цитированием
  #4 (permalink)  
Старый 26.03.2014, 15:32
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от cha0s
а вот типа такого

$('......').change(function()
подойдет
А чей чеиньч-то?
Коли у тебя клики по лабелям идут...

Сообщение от cha0s
все сложно
Так это может просто ты сам все усложняешь?
Ответить с цитированием
  #5 (permalink)  
Старый 26.03.2014, 15:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от cha0s
движок генерирует все эти input
Ну и пусть генерит...

Сообщение от cha0s
зона действия начинается с
$('.results')
Как вариант (даже для обновляемого контента)...

<!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'>
.on {
	color: green;
}
</style>
<script type='text/javascript'>
$(function (){
	$('.results').on('click','label',function (){
		$(this.parentNode).find('label.on').removeClass('on');
		$(this).addClass('on');
	});
});
</script>
</head>
<body>
<div class="results">
	<div id="results">
		<div position_title="1" id="option-242" class="option radio">
			<div class="fields" style="margin-top:1px;">
				<input style="display:none;" type="radio" name="option[242]" value="92" id="option-value-92">
				<label class="spanradio" for="option-value-92">5 x 7</label>
				<input style="display:none;" type="radio" name="option[242]" value="93" id="option-value-93">
				<label class="spanradio" for="option-value-93">6 x 6</label>
			</div>
		</div>
	</div>
</div>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 26.03.2014, 16:12
Кандидат Javascript-наук
Отправить личное сообщение для cha0s Посмотреть профиль Найти все сообщения от cha0s
 
Регистрация: 21.10.2013
Сообщений: 125

Спасибо! то что нужно! а главное просто! Вопрос закрыт.
Ответить с цитированием
  #7 (permalink)  
Старый 26.03.2014, 16:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от cha0s
то что нужно
Только это как раз вариант с навешиванием события.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48