JQuery UI Диалог / Перетащите Вопрос - PullRequest
12 голосов
/ 14 июля 2011

Использование jQuery UI Dialog.

Отлично работает, но в настоящее время, когда я перетаскиваю диалоговое окно, оно не сдвигается с экрана (весь диалог всегда находится в области просмотра).

ЕстьЕсть ли способ настроить диалог, чтобы я мог частично перетащить его за пределы экрана?

Ответы [ 4 ]

16 голосов
/ 17 мая 2012

Или вы можете сделать это более простым и более "jQuery способом";)

$(document).ready(function(){
    $('#dialog').
    dialog({
        //your dialog options go here
    }).
    dialog("widget").draggable("option","containment","none"); //this chained sequence kills containment  
});
10 голосов
/ 14 июля 2011

Конечно, вы можете расширить код диалога jQuery.Просто включите этот код:

$.ui.dialog.prototype._makeDraggable = function() { 
    this.uiDialog.draggable({
        containment: false
    });
};

Он переопределит значение содержания по умолчанию для «документа» на false, что отключит ограничение.

3 голосов
/ 31 августа 2011

У меня была такая же проблема, и я собирался использовать решение betamax , но заметил, что оно эффективно заменяет некоторые встроенные функциональные возможности пользовательского интерфейса jQuery.Поэтому вместо этого я адаптировал подход, чтобы сохранить встроенную функциональность, но также отключить сдерживание путем переопределения _makeDraggable вместо простой его замены:

if (!$.ui.dialog.prototype._makeDraggableBase) {
    $.ui.dialog.prototype._makeDraggableBase = $.ui.dialog.prototype._makeDraggable;
    $.ui.dialog.prototype._makeDraggable = function() {
        this._makeDraggableBase();
        this.uiDialog.draggable("option", "containment", false);
    };
}
2 голосов
/ 14 июля 2011

Играть с опцией, позицией. Напишите свои собственные вызовы javascript, чтобы переместить окно.

   $('#dialog').dialog('option','position',[500, 100]);

но вы не можете переместить окно из порта просмотра, если вы хотите иметь такую ​​функцию, напишите свой собственный, расширяя диалоговое окно jquery ui, (Обновите блок кода, где он проверяет правильность позиции (действителен, если позиции x, y находятся в области просмотра)

...