Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 17.03.2011, 11:55
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Цитата:
Спасибо. Всё работает. Но я не понимаю смысл этих строк
if (a != c) {b = 0;a = c};
b ^= 1;
c.checked = b

Больше всего не понимаю зачем b возводить в первую степень.
Это побитовое отрицание, а не степень. Если b равна нулю, то станет единица и наоборот. Полная версия такого кода:

if (b === 0)
	b = 1;
else
	b = 0;


Далее:

Мы проверяем, на какой элемент кликнули в последний раз, а на какой сейчас. Если они совпадают, то меняем checked.

Последний раз редактировалось Matre, 17.03.2011 в 11:59.
Ответить с цитированием
  #12 (permalink)  
Старый 17.03.2011, 12:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

agert,
b ^= 1;
это не степень это исключающее или http://javascript.ru/bitwise-operators
способ установления переменной в 1 или true -- затем в 0 или false и т.д.
Алгоритм такой : Если кнопка ранее не нажималась установить переменную b в ноль , в переменной a запомнить какая кнопка нажата .
потом установить значение checked согласно тригеру b.
b ^= 1; или b = b ^ 1;
это можно заменить данном случае на b=!b;
Ответить с цитированием
  #13 (permalink)  
Старый 18.03.2011, 00:24
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

вот более простой для понимая вариант
<!DOCTYPE HTML>
<html>
  <head>   
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
    <script src="my.js"></script>
  </head>
  <body>

<input type="radio" class="radio" name="group">
<input type="radio" class="radio" name="group">

<script type="text/javascript">
  $('.radio').bind({
    'mouseup': function(){
      $(this).data('prv-checked', this.checked);
    },
    'click': function(){
      this.checked = ! $(this).data('prv-checked');
    }
  });
</script>

  </body>
</html>


а вот вариант рони до минимизации
<!doctype html>
<html>
<body>
    <input type="radio" class="radio" name="group">
    <input type="radio" class="radio" name="group">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
    <script type="text/javascript">
        var prvEl, prvChecked;
        $('.radio').click(function(){
            if (prvEl != this) {
                prvChecked = false;
                prvEl = this;
            }
            this.checked = ! prvChecked;
            prvChecked = ! prvChecked;
        });
    </script>
</body>
</html>


а для тех, кого интересует практическая сторона задачи, стоит подумать над вопросом, который задал Артемий Лебедев Сергею Чикуенку: "Как пользователь поймет, что оно так работает?"
Ответить с цитированием
  #14 (permalink)  
Старый 18.03.2011, 00:46
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Ну да, для рядового юзера куда проще что-то типа:
<label><input type="radio" name="group" checked>Ничего</label><br>
<label><input type="radio" name="group">Пиво</label><br>
<label><input type="radio" name="group">Водка</label>


И тут уж выбирать надо что важней, дизайн и фишки или колличесьво человек не забивших на заполнение.)
__________________
29375, 35
Ответить с цитированием
  #15 (permalink)  
Старый 16.08.2013, 16:09
Новичок на форуме
Отправить личное сообщение для Stolarate Посмотреть профиль Найти все сообщения от Stolarate
 
Регистрация: 16.08.2013
Сообщений: 1

А как сделать чтоб рядом выводилось, после выбора, рядом значение "1","2" или "3" в отдельной строке?
Буду очень благодарен!

<label><input type="radio" name="group" checked="checked" />Ничего "1"</label><br /> 
<label><input type="radio" name="group" />Пиво "2"</label><br /> 
<label><input type="radio" name="group" />Водка "3"</label>
Ответить с цитированием
  #16 (permalink)  
Старый 17.08.2013, 12:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Stolarate,

<!DOCTYPE HTML>
<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 span{
   display: none;
   width: 40px;
   text-align: right;
 }
 label input:checked ~ span {
   display:  inline-block;
 }

  </style>
</head>

<body>

<label><input type="radio" name="group" checked="checked" />Ничего "1"<span>1</span></label><br />


<label><input type="radio" name="group" />Пиво "2"<span>2</span></label><br />


<label><input type="radio" name="group" />Водка "3"<span>3</span></label>

</body>

</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Убрать курсор lastbronetrain ExtJS 5 13.12.2010 16:01
Нужно убрать картинку valeriys Общие вопросы Javascript 5 13.09.2010 13:40
как правильно передвать имя radiobutton в функции boris2000 Элементы интерфейса 2 03.08.2010 21:16
Как убрать выделение в Опере у div, получившего фокус ? spa_2002 Opera, Safari и др. 5 03.09.2009 10:42
Обработка поля формы по событию checked windeamon Я не знаю javascript 12 20.05.2009 15:18