jquery ui对话框可拖动整个对话框而不仅仅是标题

时间:2011-06-20 11:54:33

标签: javascript jquery jquery-ui draggable jquery-ui-dialog

目前,jquery ui对话框只能在标题栏上拖放

使整个对话框而不仅仅是标题栏可以使jquery ui对话框可以拖动的推荐方法是什么?

我刚刚做了

elem.dialog({draggable: false}).draggable()

这有什么不对吗?

2 个答案:

答案 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内部结构来说很有用,如果未来的更新改变了这些内部结构,可能会中断。