Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Checkbox в таблице реагирует на клик со второго раза. / 13 сообщений из 13, страница 1 из 1
22.10.2012, 16:53:26
    #38008482
son6ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Checkbox в таблице реагирует на клик со второго раза.
Пытаюсь разукрасить стандартный чекбокс.
Код: html
1.
<div class='check'><input type='checkbox' name='type' /></div>



Код: css
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
.check {
	width: 34px;
	height: 17px;
	background: url(../image/check.png) no-repeat;
	padding-left: 25px;
	cursor: pointer;
	position: relative;
	float: left;
}
.check.active {
	background: url(../image/check.png) no-repeat 0 -17px;
}



Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
$('.check').click(function(){
  if( $(this).find('input').is(':checked') ) {
	$(this).removeClass('active');
	$(this).find('input').removeAttr('checked');
  } else {
	$(this).addClass('active');
	$(this).find('input').attr('checked', true);
  }
});	



Проблема возникла после того, как поместила див с чекбоксом в таблицу. Клик на чекбоксе срабатывает со второй попытки. Как быть?
...
Рейтинг: 0 / 0
22.10.2012, 17:01:17
    #38008502
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Checkbox в таблице реагирует на клик со второго раза.
тут имхо вместо дива явно напрашивается лейбл
ну а дальше http://jsfiddle.net/SnNtb/
...
Рейтинг: 0 / 0
22.10.2012, 17:07:21
    #38008516
son6ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Checkbox в таблице реагирует на клик со второго раза.
Паганель, спасибо. А почему не работает сейчас? Смутно что-то вспоминаю про всплытие событий в jQuery...
...
Рейтинг: 0 / 0
22.10.2012, 17:21:40
    #38008555
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Checkbox в таблице реагирует на клик со второго раза.
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<!DOCTYPE HTML>
<html>  
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
    <style>
      .checkbox {
        background-color: transparent;
        border: solid 1px #999;
        float: left;
        height: 13px;
        width: 13px;
      }
      .checkbox.checked {
        background-color: #000;
      }
      .checkbox input {
        cursor: pointer;
        filter: alpha(opacity=0);
        opacity: 0;
      }
    </style>
  </head>  
  <body>
    <table>
      <tr>
        <td>
          <div class="checkbox">
            <input type="checkbox" />
          </div>
          &nbsp;Click on the checkbox!
        </td>
      </tr>
    </table>
    <script>
      $('.checkbox').on('click', 'input', onCheckboxInputClick);

      function onCheckboxInputClick() {
        $(this).closest('.checkbox').toggleClass('checked', this.checked);
      }
    </script>
  </body>
</html>
...
Рейтинг: 0 / 0
22.10.2012, 17:42:16
    #38008590
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Checkbox в таблице реагирует на клик со второго раза.
son6kaПаганель, спасибо. А почему не работает сейчас? Смутно что-то вспоминаю про всплытие событий в jQuery...Для Вашего случая добавить
Код: javascript
1.
2.
3.
4.
$('.check input').click(function(e){
    $(this).closest('.check').toggleClass('active');
    e.stopPropagation();
});

но я - за label
...
Рейтинг: 0 / 0
22.10.2012, 17:45:09
    #38008601
mage.lan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Checkbox в таблице реагирует на клик со второго раза.
son6ka,


1 - вообще-то не стоит управлять чекбоксом самостоятельно, отлавливая события дива, в котором он лежит, если вы все-же это делаете, надо отменять событие.
2 - клик на чекбоксе в разных браузерах происходит в разное время.
3 - у чекбокса захватывать надо на событие change, тогда точно известно какое значение он получил и в соответствии с этим изменять оформление.
...
Рейтинг: 0 / 0
22.10.2012, 17:50:10
    #38008610
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Checkbox в таблице реагирует на клик со второго раза.
mage.lanу чекбокса захватывать надо на событие changeблин точно вылетело их головы
...
Рейтинг: 0 / 0
22.10.2012, 17:51:10
    #38008611
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Checkbox в таблице реагирует на клик со второго раза.
Click просто на инпуте надо ловить, вот и всё. А stopPropagation() вызывать не надо.
...
Рейтинг: 0 / 0
22.10.2012, 17:53:42
    #38008617
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Checkbox в таблице реагирует на клик со второго раза.
skyANAClick просто на инпуте надо ловить, вот и всё. А stopPropagation() вызывать не надо.я так понял див у автора должен быть шире, и на клик за пределами инпута тоже должна быть реакция
...
Рейтинг: 0 / 0
22.10.2012, 17:55:54
    #38008619
son6ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Checkbox в таблице реагирует на клик со второго раза.
Все равно, если чекбокс(див с чекбоксом) в ячейке таблицы, то оформление меняется только на второй клик.
...
Рейтинг: 0 / 0
22.10.2012, 17:57:30
    #38008621
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Checkbox в таблице реагирует на клик со второго раза.
son6kaВсе равно, если чекбокс(див с чекбоксом) в ячейке таблицы, то оформление меняется только на второй клик.можете дать ссылку на тестовый пример на jsfiddle ?
...
Рейтинг: 0 / 0
22.10.2012, 18:29:07
    #38008675
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Checkbox в таблице реагирует на клик со второго раза.
1. Я привёл пример с таблицей;
2. На что вообще влияет ширина div? :)
...
Рейтинг: 0 / 0
22.10.2012, 18:31:49
    #38008682
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Checkbox в таблице реагирует на клик со второго раза.
skyANA2. На что вообще влияет ширина div? :)а давайте спросим у автора, правильна ли моя догадка, чтоПаганельна клик за пределами инпута тоже должна быть реакция
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Checkbox в таблице реагирует на клик со второго раза. / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]