目前,jquery ui对话框只能在标题栏上拖放
使整个对话框而不仅仅是标题栏可以使jquery ui对话框可以拖动的推荐方法是什么?
我刚刚做了
elem.dialog({draggable: false}).draggable()
这有什么不对吗?
答案 0 :(得分:14)
好吧,elem.dialog({draggable: false}).draggable();
不起作用,因为正如其他答案所说的那样,它不是正确的元素。但是,这将有效:
elem.dialog({draggable: false}).parent().draggable();
我认为这比摆弄jquery内部结构更好。
答案 1 :(得分:5)
目前,jQueryUI使用此代码阻止内容可拖动:
self.uiDialog.draggable({
cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
handle: ".ui-dialog-titlebar",
...
});
因此,要进行所需的更改,您需要访问该内部uiDialog
对象并更改其设置。
如果dlg
是对话框内容对象:
$(dlg).data('dialog').uiDialog.draggable('option', {
cancel: '.ui-dialog-titlebar-close',
handle: '.ui-dialog-titlebar, .ui-dialog-content'
})
会奏效。
请注意,这对jQueryUI内部结构来说很有用,如果未来的更新改变了这些内部结构,可能会中断。