03.08.2011, 16:51
|
Кандидат Javascript-наук
|
|
Регистрация: 31.07.2011
Сообщений: 118
|
|
background :checked
Возникла проблема, как мне нужно проверить если чек бокс активен то меняем фон родителя, написал что такое;
if($('.stlchek input:checked'))
{
$('.stlchek').css('background-position','0 0');
}
else
{
$('.stlchek').css('background-position','0 -122px');
}
|
|
03.08.2011, 17:04
|
|
Профессор
|
|
Регистрация: 09.11.2009
Сообщений: 1,101
|
|
if($('.stlchek input:checked')*!*.length*/!*)
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
|
|
03.08.2011, 17:12
|
Кандидат Javascript-наук
|
|
Регистрация: 31.07.2011
Сообщений: 118
|
|
Сообщение от walik
|
if($('.stlchek input:checked')*!*.length*/!*)
|
извините, а можно для мало имущих пару слово добавить?
|
|
03.08.2011, 17:15
|
Профессор
|
|
Регистрация: 29.06.2011
Сообщений: 445
|
|
Проверяет, что коллекция не пустая. Для пустой выборки приведение к булеву типу все равно даст true.
|
|
03.08.2011, 17:25
|
|
Профессор
|
|
Регистрация: 09.11.2009
Сообщений: 1,101
|
|
Сообщение от ваый
|
Для пустой выборки приведение к булеву типу все равно даст true.
|
то есть, если не будет ни одного элемента, то все равно true ?
ошибаешься:
<input type="checkbox" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$('input:checkbox').click(function() {
if ($('input:checked').length)
$('body').css({backgroundColor: 'red'});
else
$('body').css({backgroundColor: 'white'});
});
</script>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
|
|
03.08.2011, 17:43
|
Профессор
|
|
Регистрация: 29.06.2011
Сообщений: 445
|
|
Сообщение от walik
|
то есть, если не будет ни одного элемента, то все равно true ?
ошибаешься:
|
Нет, не ошибаюсь:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
var $collection = $('#this-element-does-not-exist-on-the-page');
if ($collection) {
alert('А может быть, все же где-то он есть?');
}
if ($collection.size()) { // $collection.length
alert('Нету..');
}
</script>
|
|
03.08.2011, 17:49
|
|
Профессор
|
|
Регистрация: 09.11.2009
Сообщений: 1,101
|
|
Сообщение от ваый
|
if ($collection) {
|
Что нам показывает этот if ? $collection - это обычный jquery'евский объект, естественно что будет true
Сообщение от ваый
|
if ($collection.size())
|
правельно, нет ни одного элемента, условие не сработало (false)
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
|
|
03.08.2011, 17:51
|
Профессор
|
|
Регистрация: 29.06.2011
Сообщений: 445
|
|
Ну так в об этом и говорил
|
|
03.08.2011, 17:56
|
Кандидат Javascript-наук
|
|
Регистрация: 31.07.2011
Сообщений: 118
|
|
а где сейчас мою ошибка?
$('.stlchek input:checkbox').ready(function() {
if ($('.stlchek input:checked').length)
$(this).parents('.stlchek').css({backgroundColor: 'red'});
else
$(this).parents('.stlchek').css({backgroundColor: 'white'});
});
|
|
03.08.2011, 17:56
|
|
Профессор
|
|
Регистрация: 09.11.2009
Сообщений: 1,101
|
|
Так ты чей IF прокомментировал ТС'а или мой (так как в моем было .length) ?
Я подумал что твой комментарий к моему сообщению относится))
Beriagts,
Я хз если у инпута есть ready. Но тебе надо при загрузки страницы выполнить ? поставь тогда ready на документ
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Последний раз редактировалось walik, 03.08.2011 в 17:59.
|
|
|
|