Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.05.2009, 18:51
Новичок на форуме
Отправить личное сообщение для Amiga Посмотреть профиль Найти все сообщения от Amiga
 
Регистрация: 24.05.2009
Сообщений: 8

jQuery UI Layout
Подскажите, пожалуйста, как в примере http://layout.jquery-dev.net/demos/saved_state.html прочитать текущие сохраненные аттрибуты панелей (размер, статус) и вывести их на экран, напр. в центральной панели. Если можно конкретный код (что куда вставить), я новичок в javascript...
Чего-то у меня ничего не получается.
Ответить с цитированием
  #2 (permalink)  
Старый 25.05.2009, 01:47
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

var myLayout = $('body').layout();
var is_west_open = myLayout.state.west.isOpen;
var north_size   = myLayout.state.north.size;
Ответить с цитированием
  #3 (permalink)  
Старый 25.05.2009, 02:28
Новичок на форуме
Отправить личное сообщение для Amiga Посмотреть профиль Найти все сообщения от Amiga
 
Регистрация: 24.05.2009
Сообщений: 8

А как вывести значение этих переменных на экран?

В том примере вставляю так:
var is_west_open = myCustomLayoutName.state.west.isOpen ;
var north_size   = myCustomLayoutName.state.north.size ;

 document.write( north_size );

Результат:
'myCustomLayoutName.state' - есть null или не является объектом

Последний раз редактировалось Amiga, 25.05.2009 в 02:37.
Ответить с цитированием
  #4 (permalink)  
Старый 25.05.2009, 03:00
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Цитата:
А как вывести значение этих переменных на экран?
куда на экран? В диалоговом окне:
alert( north_size );

в div с id="screen":
document.getElementById('screen').innerHTML = north_size;
Ответить с цитированием
  #5 (permalink)  
Старый 25.05.2009, 03:17
Новичок на форуме
Отправить личное сообщение для Amiga Посмотреть профиль Найти все сообщения от Amiga
 
Регистрация: 24.05.2009
Сообщений: 8

var myLayout = $('body').layout();
var north_size   = myLayout.state.north.size ;

alert( north_size );

Результат в окне Undefined!
Почемуже не выводится текущий размер панели?
Ответить с цитированием
  #6 (permalink)  
Старый 25.05.2009, 03:21
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

приведи код всей странички
Ответить с цитированием
  #7 (permalink)  
Старый 25.05.2009, 03:23
Новичок на форуме
Отправить личное сообщение для Amiga Посмотреть профиль Найти все сообщения от Amiga
 
Регистрация: 24.05.2009
Сообщений: 8

ссылка в первом посте. Вставил только под body код выше.
Ответить с цитированием
  #8 (permalink)  
Старый 25.05.2009, 14:11
Новичок на форуме
Отправить личное сообщение для Amiga Посмотреть профиль Найти все сообщения от Amiga
 
Регистрация: 24.05.2009
Сообщений: 8

Вот простейшая страница:

<html>
<head>
<script src="js/jquery.js"></script>
<script src="js/jquery.layout.js"></script>
<script src="js/jquery.layout.state.js"></script>
<script>
    $(document).ready(function () {
        $('body').layout({ applyDefaultStyles: true });
    });
</script>
</head>
<body>
<div class="ui-layout-center">Center

<script>
// init instance var
var myLayout = $('body').layout();

// read layout 'options'
var is_west_resizable = myLayout.options.west.resizable;
var north_maxHeight   = myLayout.options.north.maxSize;

var state = myLayout.state;

// get layout 'state'
var is_west_open = myLayout.state.west.isOpen;
var north_size   = myLayout.state.north.size;

// current state
var isWestPaneOpen       = !state.west.isClosed;
var isSouthPaneHidden    = state.south.isHidden;
var isEastPaneSliding    = state.east.isSliding;

// current dimensions
var westCurrentSize      = state.west.size;
var westMinimumSize      = state.west.minSize;
var containerInnerWidth  = state.container.innerWidth;
var containerPaddingLeft = state.container.paddingLeft;

alert ( north_size ); 

</script>

</div>
<div class="ui-layout-north">North</div>
<div class="ui-layout-south">South</div>
<div class="ui-layout-east">East</div>
<div class="ui-layout-west">West</div>

</body>
</html>


Результат тот же - Undefined!
В чем ошибка?
Нормально выводятся только layout options.

Последний раз редактировалось Amiga, 25.05.2009 в 14:14.
Ответить с цитированием
  #9 (permalink)  
Старый 25.05.2009, 22:05
Новичок на форуме
Отправить личное сообщение для Amiga Посмотреть профиль Найти все сообщения от Amiga
 
Регистрация: 24.05.2009
Сообщений: 8

Разобрался в вопросе, переговорив с автором. Может кому поможет...
Оказывается панели layout должны уже существовать с соответствующими присвоенными классами до инициализации, напр. в виде div'ов или iframe и др. Они не создаются автоматически при инициализации. Вот такой код работает:
<html> 
<head> 
<script src="js/jquery.js"></script> 
<script src="js/jquery.layout.js"></script> 
<script src="js/jquery.layout.state.js"></script>
<script src="js/complex.js"></script> 
 
<script> 
    $(document).ready(function () { 
        $('body').layout({ applyDefaultStyles: true
        						 }); 
    }); 
</script> 
</head> 
<body> 
<div class="ui-layout-center">Center 
<div id="screen">
</div>
</div> 
<div class="ui-layout-north">North</div> 
<div class="ui-layout-south">South</div> 
<div class="ui-layout-east">East</div> 
<div class="ui-layout-west">West</div> 
<script>
// init instance var 
var myLayout = $('body').layout(); 

var state = myLayout.state; 

// current dimensions  
var westCurrentSize      = state.west.size; 

//debugData( myLayout.state.west, 'West State' ); 
document.getElementById('screen').innerHTML = westCurrentSize;
</script>

</body> 
</html>

Для отладки есть удобная функция в complex.js, которая показывает состояние всех объектов и их параметров
debugData( object[.branch[.branch]] [, dialog-title] );
напр.
debugData( myLayout.state.west, 'West State' );
debugData( myLayout.state, 'ALLStates' );

Последний раз редактировалось Amiga, 25.05.2009 в 22:11.
Ответить с цитированием
  #10 (permalink)  
Старый 25.05.2009, 23:44
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

firebug намного удобнее
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery для загрузки страницы в <div> Dr.Holerik jQuery 12 11.10.2016 18:36
Jquery - поменять местами блоки denlem jQuery 4 09.12.2010 16:00
Jquery, Dynatree и JSON antirek jQuery 6 01.09.2009 15:00
Обработчик события: как делает jquery? Shasoft jQuery 35 22.04.2009 09:41
jquery tabs (проблема с отображением) Extern Элементы интерфейса 0 16.03.2009 17:42