el.append("<tr><td>content</td></tr>");
}
+ // intrinsic height is incorrect in FF for buttons with no content
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=471763
+ // Support: FF
+ if ( typeName === "button" ) {
+ el.text( "button" );
+ }
+
el.draggable({ cancel: "" });
offsetBefore = el.offset();
el.simulate( "drag", {
// Support: FF, Chrome, and IE9,
// there are some rounding errors in so we can't say equal, we have to settle for close enough
- closeEnough( offsetBefore.left, offsetAfter.left - 50, 1, "dragged[50, 50] " + "<" + typeName + ">" );
- closeEnough( offsetBefore.top, offsetAfter.top - 50, 1, "dragged[50, 50] " + "<" + typeName + ">" );
+ closeEnough( offsetBefore.left, offsetAfter.left - 50, 1, "dragged[50, 50] " + "<" + typeName + "> left" );
+ closeEnough( offsetBefore.top, offsetAfter.top - 50, 1, "dragged[50, 50] " + "<" + typeName + "> top" );
el.draggable("destroy");
el.remove();
});
ok( child.hasClass( "ui-draggable-handle" ), "child retains class name on destroy" );
});
+// http://bugs.jqueryui.com/ticket/7772
+// when css 'right' is set, element resizes on drag
+test( "setting right/bottom css shouldn't cause resize", function() {
+ expect( 3 );
+
+ var finalOffset,
+ element = $( "#draggable3" ),
+ origWidth = element.width(),
+ origHeight = element.height(),
+ origOffset = element.offset();
+
+ element.draggable();
+
+ TestHelpers.draggable.move( element, -50, -50 );
+
+ finalOffset = element.offset();
+ finalOffset.left += 50;
+ finalOffset.top += 50;
+
+ equal( element.width(), origWidth, "element retains width" );
+ equal( element.height(), origHeight, "element retains height" );
+ deepEqual( finalOffset, origOffset, "element moves the correct distance" );
+});
+
})( jQuery );
$.ui.ddmanager.prepareOffsets(this, event);
}
+ // Reset helper's right/bottom css if they're set and set explicit width/height instead
+ // as this prevents resizing of elements with right/bottom set (see #7772)
+ this._normalizeRightBottom();
+
this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
//If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
}
},
+ _normalizeRightBottom: function() {
+ if ( this.options.axis !== "y" && this.helper.css( "right" ) !== "auto" ) {
+ this.helper.width( this.helper.width() );
+ this.helper.css( "right", "auto" );
+ }
+ if ( this.options.axis !== "x" && this.helper.css( "bottom" ) !== "auto" ) {
+ this.helper.height( this.helper.height() );
+ this.helper.css( "bottom", "auto" );
+ }
+ },
+
// From now on bulk stuff - mainly helpers
_trigger: function( type, event, ui ) {