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

Har*_*rry 3 javascript jquery jquery-ui draggable jquery-ui-dialog

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

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

我已经做了

elem.dialog({draggable: false}).draggable()
Run Code Online (Sandbox Code Playgroud)

这有什么不对吗?

Jef*_*rto 14

好吧,elem.dialog({draggable: false}).draggable();不行,因为正如其他答案所说,这不是正确的因素.但是,这将有效:

    elem.dialog({draggable: false}).parent().draggable();
Run Code Online (Sandbox Code Playgroud)

我认为这比摆弄jquery内部更好.

  • @Kostadin - 用CSS自己做. (2认同)

Aln*_*tak 5

目前jQueryUI使用此代码阻止内容可拖动:

self.uiDialog.draggable({
    cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
    handle: ".ui-dialog-titlebar",
     ...
});
Run Code Online (Sandbox Code Playgroud)

因此,要进行所需的更改,您需要访问该内部uiDialog对象并更改其设置.

如果dlg是对话框内容对象:

$(dlg).data('dialog').uiDialog.draggable('option', {
    cancel: '.ui-dialog-titlebar-close',
    handle: '.ui-dialog-titlebar, .ui-dialog-content'
})
Run Code Online (Sandbox Code Playgroud)

将工作.

请注意,这与jQueryUI内部结构相当,如果未来的更新改变了这些内部结构,可能会中断.