差不多两年后才回答这个问题,但我遇到了同样的问题,最后我想分享一个更简单的解决方案。
默认情况下,jQuery UI对话框在拖动时会忽略.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'
});
}
});
我加入我的下拉在打开的方法,这就是为什么我选择了修改取消那里。另请注意,我的代码依赖于分配给对话框的自定义类名,该对话框使用dialogClass选项设置。
还有一点需要注意,如果对话框预先定义的类名不断变化(.ui-dialog-content和.ui-dialog-titlebar-close),取消将不再适用于这些元素。
的jQuery用户界面对话框API:http://api.jqueryui.com/dialog/
能否请您发表您的实现? – karim79 2012-02-06 15:56:13
Here:[http://jsfiddle.net/a9ntp/](http://jsfiddle.net/a9ntp/) – 2012-02-06 16:03:47
你不知道我在想什么。你不是心灵的。 – 2012-02-06 16:09:18