jQuery UI Layout: sizePane() сбрасывает мои настройки
Доброе утро,
Похоже, что макет пользовательского интерфейса jQuery сбрасывает мои параметры после вызова sizePane(). Когда я загружаю следующее в FireFox, затем нажимаю кнопку "Изменить размер", северная панель внезапно становится изменяемой, и горячие клавиши снова включаются. Я делаю это неправильно? Или это ошибка?
<html>
<head><title>Layout Test</title></head>
<link href="css/jquery-ui.custom.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.7.custom.min.js"></script>
<script type="text/javascript" src="js/jquery.layout-1.2.0.js"></script>
<script language="JavaScript">
jQuery(document).ready(documentReady);
function documentReady(){
jQuery('body').layout({
defaults: {
applyDefaultStyles: true
},
north: {
enableCursorHotkey: false,
closable: false,
resizable: false
},
center: {
}
});
}
</script>
<body>
<div class="ui-layout-north">
North Pane
</div>
<div class="ui-layout-center">
Center Pane
<input type="button" value="Resize" onclick="jQuery('body').layout().sizePane('north',100);" />
</div>
</body>
2 ответа
ОК, я думаю, что нашел решение. При повторном вызове jQuery('body'). Layout() мой предыдущий объект "layout" заменяется новым, сбрасывая все параметры.
Решение состоит в том, чтобы сохранить ссылку на исходное объявление и работать с этим объектом, например, так:
<html>
<head><title>Layout Test</title></head>
<link href="css/jquery-ui.custom.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.7.custom.min.js"></script>
<script type="text/javascript" src="js/jquery.layout-1.2.0.js"></script>
<script language="JavaScript">
jQuery(document).ready(documentReady);
var myLayout;
function documentReady(){
myLayout = jQuery('body').layout({
defaults: {
applyDefaultStyles: true
},
north: {
enableCursorHotkey: false,
closable: false,
},
center: {
enableCursorHotkey: false,
closable: false,
}
});
}
</script>
<body>
<div class="ui-layout-north">
North Pane
</div>
<div class="ui-layout-center">
Center Pane
<input type="button" value="Resize" onclick="myLayout.sizePane('north',100);" />
</div>
</body>
</html>
Кроме того, параметры "resizable: false" должны быть удалены, потому что в противном случае вызов sizePane() не будет иметь никакого эффекта.
Вы можете добавить эту опцию на панель:
animatePaneSizing: true