mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Dailog: Cover iframes during drag and resize. Fixes #7650 - Dialog cannot be dragged properly with IFRAME.
This commit is contained in:
parent
8724092e50
commit
a7353e7c9b
26
ui/jquery.ui.dialog.js
vendored
26
ui/jquery.ui.dialog.js
vendored
@ -444,6 +444,7 @@ $.widget( "ui.dialog", {
|
||||
containment: "document",
|
||||
start: function( event, ui ) {
|
||||
$( this ).addClass("ui-dialog-dragging");
|
||||
that._blockFrames();
|
||||
that._trigger( "dragStart", event, filteredUi( ui ) );
|
||||
},
|
||||
drag: function( event, ui ) {
|
||||
@ -455,6 +456,7 @@ $.widget( "ui.dialog", {
|
||||
ui.position.top - that.document.scrollTop()
|
||||
];
|
||||
$( this ).removeClass("ui-dialog-dragging");
|
||||
that._unblockFrames();
|
||||
that._trigger( "dragStop", event, filteredUi( ui ) );
|
||||
}
|
||||
});
|
||||
@ -491,6 +493,7 @@ $.widget( "ui.dialog", {
|
||||
handles: resizeHandles,
|
||||
start: function( event, ui ) {
|
||||
$( this ).addClass("ui-dialog-resizing");
|
||||
that._blockFrames();
|
||||
that._trigger( "resizeStart", event, filteredUi( ui ) );
|
||||
},
|
||||
resize: function( event, ui ) {
|
||||
@ -500,6 +503,7 @@ $.widget( "ui.dialog", {
|
||||
options.height = $( this ).height();
|
||||
options.width = $( this ).width();
|
||||
$( this ).removeClass("ui-dialog-resizing");
|
||||
that._unblockFrames();
|
||||
that._trigger( "resizeStop", event, filteredUi( ui ) );
|
||||
}
|
||||
})
|
||||
@ -666,6 +670,28 @@ $.widget( "ui.dialog", {
|
||||
}
|
||||
},
|
||||
|
||||
_blockFrames: function() {
|
||||
this.iframeBlocks = this.document.find( "iframe" ).map(function() {
|
||||
var iframe = $( this );
|
||||
|
||||
return $( "<div>" )
|
||||
.css({
|
||||
position: "absolute",
|
||||
width: iframe.outerWidth(),
|
||||
height: iframe.outerHeight()
|
||||
})
|
||||
.appendTo( iframe.parent() )
|
||||
.offset( iframe.offset() )[0];
|
||||
});
|
||||
},
|
||||
|
||||
_unblockFrames: function() {
|
||||
if ( this.iframeBlocks ) {
|
||||
this.iframeBlocks.remove();
|
||||
delete this.iframeBlocks;
|
||||
}
|
||||
},
|
||||
|
||||
_createOverlay: function() {
|
||||
if ( !this.options.modal ) {
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user