Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Диалоговое окно. Добавить в заголовок или вниз окна поле (https://javascript.ru/forum/jquery/66064-dialogovoe-okno-dobavit-v-zagolovok-ili-vniz-okna-pole.html)

WadimS 23.11.2016 10:24

Диалоговое окно. Добавить в заголовок или вниз окна поле
 
В JQUERY реализовано добавление кнопки. А есть ли возможность добавить поле типа select? И как это сделать.

ksa 23.11.2016 11:40

Цитата:

Сообщение от WadimS
В JQUERY реализовано добавление кнопки.

Там вообще любой контент можно добавлять...
Цитата:

Добавляет в уже существующий набор дополнительные элементы, созданные на лету.
$("p").clone().add("<span>Again</span>").appendTo(document.body);

http://jquery-docs.ru/traversing/add/

WadimS 23.11.2016 12:28

ksa, так-то вроде бы можно, но тот же элемент button к созданной JQ xxxx.dialog() добавляет через функционал диалогового окна JQ. А там всё совсем не так просто...

Dilettante_Pro 23.11.2016 12:47

WadimS,
Кнопки добавляются как специальные органы управления окна dialog.
а внутрь div'а xxxx ты можешь вставить любые элементы обычным образом

WadimS 23.11.2016 13:07

Dilettante_Pro, это-то само-собой!

А вот добавить бы также, как имеющийся button шибко охота )

Dilettante_Pro 23.11.2016 13:21

WadimS,
Куда и зачем?:(

Dilettante_Pro 23.11.2016 15:21

WadimS,
Вот, например, так можно вставлять вверху и внизу
$('.ui-dialog-titlebar span').after('<input type="button" value="TitleButton" />');
 $('.ui-dialog-buttonpane button').before('<input type="button" value="BottomButton" />');

WadimS 23.11.2016 18:06

Dilettante_Pro,здорово! Спасибо! Побежал проверять... :thanks:

WadimS 24.11.2016 14:51

Dilettante_Pro, простите, но видимо моих познаний не хватает, чтобы понять почему вставка элемента по вашему скрипту дважды добавляет элемент в панель окна.

Только, пожалуйста, не поймите так, что я использовал сразу обе вставки: до элемента с заданными свойствами, и после него. :-)
Буду признателен за совет!

ksa 24.11.2016 14:53

Цитата:

Сообщение от WadimS
почему вставка элемента по вашему скрипту дважды добавляет элемент в панель окна

Потому, что там именно ДВЕ команды. :)
Он их тебе показал для примера...

Цитата:

Сообщение от Dilettante_Pro
так можно вставлять вверху и внизу
//  Первая команда
$('.ui-dialog-titlebar span').after('<input type="button" value="TitleButton" />');
//  Вторая команда
 $('.ui-dialog-buttonpane button').before('<input type="button" value="BottomButton" />');


Dilettante_Pro 24.11.2016 14:54

WadimS
А покажите ваш код

WadimS 24.11.2016 19:33

Dilettante_Pro, спасибо!
Вот код:
sel = '<select id="genre" onchange="if(this.value!=0){selectGenre(this.value)}else{$(\'#story\').html(menu);}"><option value="0">Все</option><option value="1">Демиурги</option><option value="2">Космос</option></select>';

$('.ui-dialog-buttonpane button').before(sel);


Вставляет сразу два одинаковых поля select.

Причем было бы понятно, если заданный стиль встречался бы 2 раза, но отладчик находит только один элемент с таким стилем.

Dilettante_Pro 25.11.2016 10:35

WadimS,
М.б. дело в том, где находится
Цитата:

Сообщение от WadimS
$('.ui-dialog-buttonpane button').before(sel);

????

Я делал так:
$('#xxx').dialog({ buttons: { "Ok": okCliked} });
$('.ui-dialog-buttonpane button').before('<select><option>Пункт 1</option><option>Пункт 2</option></select>');

Нормально вставляется один раз

Вставил ваш sel - тоже все нормально

WadimS 25.11.2016 14:46

Dilettante_Pro, я уж и не знаю отчего...
У меня вставлена кнопка с обработкой:
buttons: { "Оглавление": function(){ 
	$('#story').html(menu);
	$('#story').dialog('option', 'title', 'Оглавление');
}

К которой, или даже вместо неё, хотелось добавить select.

С этой одной кнопкой всё работает...

Можно глянуть на самой страничке

Dilettante_Pro 25.11.2016 16:21

WadimS,
Так на вашей страничке что-то многовато объявлений $('#story').dialog,
еще и вложенных...

WadimS 25.11.2016 18:30

Dilettante_Pro,
проверю. Спасибо.

Но там только один раз объявление окна dialog, в остальных случаях изменение параметров окна.


Часовой пояс GMT +3, время: 03:24.