UI.Layout JQuery плагин - PullRequest
       23

UI.Layout JQuery плагин

5 голосов
/ 02 апреля 2011

У меня немного сложнее настроить плагин jquery UI.Layout. Когда я читаю документы, все кажется простым, но тогда ... все не работает.

Я использую текущую версию плагина 1.3.0, я считаю, и Google CDN 1.5.1 из jquery. И 1.8.10 для jquery ui, если это имеет значение.

Во-первых, я получаю всплывающее окно при загрузке страницы:

Макет-контейнер "DIV / # content" не имеет высоты. Следовательно, макет имеет высоту 0 и, следовательно, «невидим»!

Это похоже на разумное сообщение об ошибке, поэтому я изменил свой css так, чтобы он дал #content {height: 100%;}, и очистил кеш браузера, но нет, проблема все еще существует.

Вторая проблема: хотя на самом деле присутствует панель изменения размера (я вижу ее в firebug и взаимодействую с ней, пока я знаю, где она находится), похоже, что должен быть какой-то соответствующий файл css с библиотекой для стиль изменения размера. Тем не менее, демоверсии на странице UI.Layout, похоже, не имеют CSS, и они работают отлично! Например, все, что я хочу, это что-то вроде этого, http://layout.jquery -dev.net / demos / example.html , и когда я делаю просмотр исходного кода, стиль или CSS не включаются.

Чего мне не хватает?

Ответы [ 3 ]

10 голосов
/ 11 июля 2011

Это ДЕЙСТВИТЕЛЬНО плохо документировано ... и я бился головой о стену, пока не попробовал это ... вам нужно установить правило CSS, которое явно указывает высоту вашего "контейнера" ​​по вертикали ... или чтоРаздражает тревожный сигнал ... и, скорее всего, ваша Южная панель не появится ... Надеюсь, это поможет!

html, body, #myContainer { 
    width:  100%; 
    height: 100%; 
    overflow: hidden; 
} 
1 голос
/ 26 марта 2014

Предыдущий ответ не будет работать должным образом, если ваши div-ы изначально пусты.Следующее делает трюк, без отображения полос прокрутки:

#myContainer {
    width : 100%;
    height : 100%;
    position:absolute;
    left: 0px;
    right: 0px;
    top: 0px;
    bottom: 0px;
}
0 голосов
/ 05 октября 2016

Может быть, это и есть настоящая причина.https://ianstormtaylor.com/rendering-views-in-backbonejs-isnt-always-simple:

render : function () {
    this.$el.html(this.template(options));
    return this;
}

Это имеет смысл и прекрасно работает, если вы никогда не имеете дело с подпредставлениями.Но как только вам понадобятся подпредставления - что в любом реальном приложении происходит довольно рано - вы поймете, что jhuery .html () сначала вызывает .empty (), что отменяет привязку всех событий jQuery на всех дочерних узлах.Так что в первый раз, когда вы выполняете render (), все работает нормально, но как только вы вызовете его снова, все события, определенные в this.events в ваших подпредставлениях, будут не связаны.

...