]> source.dussan.org Git - jquery-ui.git/commitdiff
core: added :data selector that matches elements that have data for a given key.
authorPaul Bakaus <paul.bakaus@googlemail.com>
Mon, 14 Jul 2008 14:21:07 +0000 (14:21 +0000)
committerPaul Bakaus <paul.bakaus@googlemail.com>
Mon, 14 Jul 2008 14:21:07 +0000 (14:21 +0000)
droppable: removed the addition of "ui-droppable" class which greatly improves intialization time for IE6/7 and FF2

ui/ui.core.js
ui/ui.droppable.js

index 00167f1e79fc66425d5ec32b012c4cc90ba5c0a2..2ed32184d17111aa48720a3ba69bc6d5e31c41f4 100644 (file)
@@ -9,6 +9,11 @@
  */
 ;(function($) {
 
+// This adds a selector to check if data exists.
+jQuery.extend(jQuery.expr[':'], { 
+       data: "jQuery.data(a, m[3])"
+});
+
 $.ui = {
        plugin: {
                add: function(module, option, set) {
index 6d3e159fa605898456bacd72f45b861f42973767..e3cb08873a46f374c20fa8bd5325163fe8b189e3 100644 (file)
 $.widget("ui.droppable", {
        init: function() {
 
-               this.element.addClass("ui-droppable");
                this.isover = 0; this.isout = 1;
-               
-               //Prepare the passed options
-               var o = this.options, accept = o.accept;
-               o = $.extend(o, {
-                       accept: o.accept && o.accept.constructor == Function ? o.accept : function(d) {
-                               return $(d).is(accept);
-                       }
-               });
-               
+
+               this.options.accept = this.options.accept && this.options.accept.constructor == Function ? this.options.accept : function(d) {
+                       return d.is(accept);
+               };
+
                //Store the droppable's proportions
                this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };
                
@@ -52,7 +47,7 @@ $.widget("ui.droppable", {
                                drop.splice(i, 1);
                
                this.element
-                       .removeClass("ui-droppable ui-droppable-disabled")
+                       .removeClass("ui-droppable-disabled")
                        .removeData("droppable")
                        .unbind(".droppable");
        },
@@ -84,7 +79,7 @@ $.widget("ui.droppable", {
                if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; // Bail if draggable and droppable are same element
                
                var childrenIntersection = false;
-               this.element.find(".ui-droppable").not(".ui-draggable-dragging").each(function() {
+               this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {
                        var inst = $.data(this, 'droppable');
                        if(inst.options.greedy && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)) {
                                childrenIntersection = true; return false;
@@ -222,7 +217,7 @@ $.ui.ddmanager = {
                        
                        var parentInstance;
                        if (this.options.greedy) {
-                               var parent = this.element.parents('.ui-droppable:eq(0)');
+                               var parent = this.element.parents(':data(droppable):eq(0)');
                                if (parent.length) {
                                        parentInstance = $.data(parent[0], 'droppable');
                                        parentInstance.greedyChild = (c == 'isover' ? 1 : 0);