Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: jQuery. toggle('slow') - получить "статус" - раскрыт блок или скрыт..
 
 автор: frisst   (20.07.2011 в 23:45)   письмо автору
 
 

<div id="basketList">
    <div class="title">
        Оформляемые товары
        <div class="button" title="Развернуть список товаров."></div>
    </div>
    <div class="content">Содержимое<br /> Содержимое 2</div>
</div>

<script type="text/javascript">
    $(document).ready(function(){
        $('#basketList > .title > .button').click(function(){
            $('#basketList > .content').toggle('slow');
        });
    });
</script>

Прошу помощи. Как мне узнать, открыт в данный момент блок или нет и сохранить в переменную (0 или 1), чтобы далее использовать в скрипте... Спасибо.

  Ответить  
 
 автор: ONYX   (21.07.2011 в 01:54)   письмо автору
 
   для: frisst   (20.07.2011 в 23:45)
 

а проверить установлено ли в стилях свойство display?

if($('#basketList > .content').css('display') == 'none'){
//блок закрыт
}else{
//блок открыт
}

  Ответить  
 
 автор: Гость   (21.07.2011 в 08:43)   письмо автору
 
   для: frisst   (20.07.2011 в 23:45)
 


$(document).ready(function(){ 
    $('#basketList > .title > .button').click(function(){ 
         var isHidden = ! $('#basketList > .content').is(':hidden'); 
        $('#basketList > .content').toggle('slow'); 
        alert(isHidden);
    }); 
}); 
В данном случае можно проверять значение перед анимацией и менять на противоположное, т.к. в момент анимации независимо от того скрывается блок или отображается - он всегда будет отдавать информацию что он виден. И приведенный мной вариант будет бажить в случае многократного нажатия на переключатель. Так что вероятно лучшим (опять же зависит от контекста) вариантом будет дописать коллбэк к .toggle, что-то вроде
$('#basketList > .content').toggle('slow', function(){ alert($(this).is(':hidden')); }); 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования