Стилизация jQuery

Апокалипсис
На сайте с 02.11.2008
Offline
391
608

Имеем вот такой код:


$('.the-calculate .checkboxes-group input').before('<div class="pseudo-checkbox"></div>');
$('.the-calculate .checkboxes-group input').css('display','none');



$('.the-calculate .checkboxes-group .checkbox').click(function() {

$(this).children('input:checkbox').attr('checked', function(idx, oldAttr) {

return !oldAttr;
});
$(this).toggleClass('checked');
});

Всё работает, но только на первое переключение. Включишь/выключишь, галочка проставленная css есть, а вот checkbox не включен.

Подскажите, 2 часа бьюсь.

Записки нищего (http://zapiskinishego.ru) - мой личный блог Услуги php программиста. Очень нужна любая работа. Не покупают? Поведенческий аудит интернет-магазина за 5000 руб. (/ru/forum/990312)
R
На сайте с 18.12.2009
Offline
92
#1

Попробуйте не attr checked, а prop('checked',false) или prop('checked',true).

Также для проверки галочки чекбокса:

if( $(select).prop('checked') == true ) // или false

C
На сайте с 04.02.2005
Offline
291
#2

http://api.jquery.com/prop/

там и демка

R
На сайте с 18.12.2009
Offline
92
#3

Припоминаю, мы с Ваши уже решили такую задачу:

/ru/forum/799408

Апокалипсис
На сайте с 02.11.2008
Offline
391
#4

rerighter, Ага, о чудо:


$(this).children('input:checkbox').prop('checked', function(idx, oldAttr) {

return !oldAttr;
});

Все корректно отрабатывает.

Но для себя, не могу найти что значит return !oldAttr; , я даже в документации не нашел таких примеров вообще.

Код дал верстальщик который тоже где то его содрал :-)

C
На сайте с 04.02.2005
Offline
291
#5

:)

oldAttr принимает какое-нибудь булевое значение (true или false)

return !oldAttr - вернет инверсное значение.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий