]> source.dussan.org Git - jquery-ui.git/commitdiff
draggable: fixed relative position bug (please NEVER check in elem.style just for...
authorPaul Bakaus <paul.bakaus@googlemail.com>
Thu, 17 Jul 2008 15:04:42 +0000 (15:04 +0000)
committerPaul Bakaus <paul.bakaus@googlemail.com>
Thu, 17 Jul 2008 15:04:42 +0000 (15:04 +0000)
ui/ui.draggable.js

index 10bc32e52ff02f273557e40845815b00bbb73689..a4225093eb0e97842317380c45655887cd78f428 100644 (file)
 $.widget("ui.draggable", $.extend({}, $.ui.mouse, {
        init: function() {
                
-               //Initialize needed constants
-               var o = this.options, positioned = /^(?:r|a|f)/, element = this.element[0];
-               
-               if (!this.element.length)
-                       return false;
-
-               var style = element.style || {}, 
-                       position = style.position || "static"; 
-               
-               //Position the node
-               if (o.helper == 'original' && !positioned.test(position))
-                       style.position = 'relative';
+               if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position")))
+                       this.element[0].style.position = 'relative';
 
-               (o.disabled && this.element.addClass('ui-draggable-disabled'));
+               (this.options.disabled && this.element.addClass('ui-draggable-disabled'));
                
                this.mouseInit();
                
        },
        mouseStart: function(e) {
+               
                var o = this.options;
                
-               if (this.helper || o.disabled || $(e.target).is('.ui-resizable-handle')) return false;
+               if (this.helper || o.disabled || $(e.target).is('.ui-resizable-handle'))
+                       return false;
                
+               //Check if we have a valid handle
                var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;
-               
-       
                $(this.options.handle, this.element).find("*").andSelf().each(function() {
                        if(this == e.target) handle = true;
                });
                if (!handle) return false;
                
-               if($.ui.ddmanager) $.ui.ddmanager.current = this;
+               if($.ui.ddmanager)
+                       $.ui.ddmanager.current = this;
                
                //Create and append the visible helper
                this.helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [e])) : (o.helper == 'clone' ? this.element.clone() : this.element);