Почти два года спустя, чтобы ответить на этот вопрос, но у меня возникла та же проблема, и я нашел простое решение, которым хотел поделиться.
Диалог пользовательского интерфейса jQuery по умолчанию игнорирует .ui-dialog-content (содержимое диалога) и .ui-dialog-titlebar-close (верхняя правая кнопка закрытия в элементе заголовка) при перетаскивании.Это делается с помощью следующего кода:
this.uiDialog.draggable({
cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
...
});
Это то же самое поведение, которое необходимо для всего, что добавляется к элементу заголовка.Мне удалось добавить раскрывающийся список в перетаскиваемый «список отмены» с помощью следующего кода:
$(dialog).appendTo('body').showDialog({
...
dialogClass: 'dialog-quick-select',
open: function(event, ui) {
var dropdownHtml = '<select id="market-set-dropdown"></select>';
var $currentDialog = $('.dialog-quick-select');
$('.ui-dialog-titlebar', $currentDialog).append(dropdownHtml);
//this is needed to allow the dropdown to be opened.
$currentDialog.draggable({
cancel: '.ui-dialog-content, .ui-dialog-titlebar-close, #market-set-dropdown'
});
}
});
Я добавляю раскрывающийся список в метод open, поэтому я решил изменить отмену там.Также обратите внимание, что мой код опирается на пользовательское имя класса, назначенное диалоговому окну, которое установлено с параметром dialogClass.
Еще одно примечание, если имена классов, предварительно определенные диалогом, когда-либо изменяются (.ui-dialog-content и .ui-dialog-titlebar-close), отмена больше не будет работать с этими элементами.
API для jQuery UI Dialog: http://api.jqueryui.com/dialog/