Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   background :checked (https://javascript.ru/forum/jquery/19412-background-checked.html)

Beriagts 03.08.2011 16:51

background :checked
 
Возникла проблема, как мне нужно проверить если чек бокс активен то меняем фон родителя, написал что такое;
if($('.stlchek  input:checked'))
        {
            $('.stlchek').css('background-position','0 0');
        }
        else
        {
            $('.stlchek').css('background-position','0 -122px');
        }

walik 03.08.2011 17:04

if($('.stlchek  input:checked')*!*.length*/!*)

Beriagts 03.08.2011 17:12

Цитата:

Сообщение от walik (Сообщение 117090)
if($('.stlchek  input:checked')*!*.length*/!*)

извините, а можно для мало имущих пару слово добавить?

ваый 03.08.2011 17:15

Проверяет, что коллекция не пустая. Для пустой выборки приведение к булеву типу все равно даст true.

walik 03.08.2011 17:25

Цитата:

Сообщение от ваый
Для пустой выборки приведение к булеву типу все равно даст 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>

ваый 03.08.2011 17:43

Цитата:

Сообщение от 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>

walik 03.08.2011 17:49

Цитата:

Сообщение от ваый
if ($collection) {

Что нам показывает этот if ? $collection - это обычный jquery'евский объект, естественно что будет true

Цитата:

Сообщение от ваый
if ($collection.size())

правельно, нет ни одного элемента, условие не сработало (false)

ваый 03.08.2011 17:51

Ну так в об этом и говорил :)

Beriagts 03.08.2011 17:56

а где сейчас мою ошибка?
$('.stlchek input:checkbox').ready(function() {
            if ($('.stlchek input:checked').length)
               $(this).parents('.stlchek').css({backgroundColor: 'red'});
            else
               $(this).parents('.stlchek').css({backgroundColor: 'white'});
         });

walik 03.08.2011 17:56

Так ты чей IF прокомментировал ТС'а или мой (так как в моем было .length) ? :)
Я подумал что твой комментарий к моему сообщению относится))

Beriagts,
Я хз если у инпута есть ready. Но тебе надо при загрузки страницы выполнить ? поставь тогда ready на документ


Часовой пояс GMT +3, время: 16:00.