2010-08-02 2 views
1

Как добавить портлет пользовательского интерфейса jQuery в существующий набор портлетов?jQuery Как добавить портлет

(Проверка: http://jqueryui.com/demos/sortable/portlets.html)

Как добавить портлет после загрузки?

В моем личном проекте я реализовал портлеты: http://www.soliman.nl/test/jqueryui/ui_2.php , и я хотел бы сделать кнопку, чтобы добавить портлет. Я попытался добавить его в .column, но CSS не загружен (конечно), когда вы .addClass, все другие портлеты тоже затронуты. Должен быть простой способ ... но как?

+0

Что именно происходит, когда вы '.addClass'? Не могли бы вы раскомментировать это на своей странице, чтобы мы могли засвидетельствовать эту ошибку? (Когда я выполняю код после добавления нового div, другие портлеты не затрагиваются.) Замечательные комментарии, кстати, только первые немного жесткие. – MvanGeest

+0

Привет. Все остальные портлеты получают символ минус (-) для минимизации. – Soliman

+0

Спасибо за дополнение, забыли про первый :). Удалены звезды комментариев. – Soliman

ответ

1

В настоящее время, вы делаете

$(".portlet").addClass("ui-widget ui-widget-content ui-helper-clearfix ui-corner-all") 
.find(".portlet-header") 
.addClass("ui-widget-header ui-corner-all") 
.prepend('<span class="ui-icon ui-icon-minusthick"></span>') 
.end() 
.find(".portlet-content"); 

Что делать, если вы избавиться от $(".portlet") и сохранить с помощью $(".addspace") вы имели перед ReplaceWith, как это?

$('.addspace').replaceWith(html) 
.addClass("ui-widget ui-widget-content ui-helper-clearfix ui-corner-all") 
.find(".portlet-header") 
.addClass("ui-widget-header ui-corner-all") 
.prepend('<span class="ui-icon ui-icon-minusthick"></span>') 
.end() 
.find(".portlet-content"); 
+0

CSS не добавляется ... – Soliman

+0

Ahh .. но append вместо replaceWith работает! – Soliman

+0

Но теперь ваш портлет застрял в добавочном пространстве. Вы не сможете добавить второй ... – MvanGeest

0

После создания нескольких портлетов добавьте последний div с добавлением класса.

Затем создайте функцию с .replaceWith и .addClass.

$('.addspace').replaceWith(html); 

Пример возвращаемого HTML:

<div class="portlet" id="portletname"> <!-- make sure portletname is unique --> 
<div class="portlet-header">test</div> 
<div class="portlet-content">test</div> 
</div> 

<!-- New addspace (replaceWith replaces the old one) --> 
<div class="addspace" > 
</div 

Добавить класс портлета Div по идентификатору:

$('#portletname') 
     .addClass("ui-widget ui-widget-content ui-helper-clearfix ui-corner-all") 
     .find(".portlet-header") 
     .addClass("ui-widget-header ui-corner-all") 
     .prepend('<span class="ui-icon ui-icon-minusthick"></span>') 
     .end() 
     .find(".portlet-content"); 
Смежные вопросы