diff options
author | Eduardo Lundgren <eduardolundgren@gmail.com> | 2009-01-16 00:33:46 +0000 |
---|---|---|
committer | Eduardo Lundgren <eduardolundgren@gmail.com> | 2009-01-16 00:33:46 +0000 |
commit | 78c4d87d7b2f9f8ece53f062eb44cabf9dd51bf3 (patch) | |
tree | 5d7e87e5d970d9abf0bf429943a56f3295374b59 | |
parent | 358be8bd46ca81f16f4ca8215d35118c22b1d86d (diff) | |
download | jquery-ui-78c4d87d7b2f9f8ece53f062eb44cabf9dd51bf3.tar.gz jquery-ui-78c4d87d7b2f9f8ece53f062eb44cabf9dd51bf3.zip |
Fix for #3838 - Components should use this.widgetName on internally
-rw-r--r-- | ui/ui.accordion.js | 29 | ||||
-rw-r--r-- | ui/ui.dialog.js | 13 | ||||
-rw-r--r-- | ui/ui.draggable.js | 40 | ||||
-rw-r--r-- | ui/ui.droppable.js | 25 | ||||
-rw-r--r-- | ui/ui.progressbar.js | 12 | ||||
-rw-r--r-- | ui/ui.resizable.js | 40 | ||||
-rw-r--r-- | ui/ui.selectable.js | 11 | ||||
-rw-r--r-- | ui/ui.slider.js | 10 | ||||
-rw-r--r-- | ui/ui.sortable.js | 38 | ||||
-rw-r--r-- | ui/ui.tabs.js | 65 |
10 files changed, 172 insertions, 111 deletions
diff --git a/ui/ui.accordion.js b/ui/ui.accordion.js index cfae8d295..b96c4d7f6 100644 --- a/ui/ui.accordion.js +++ b/ui/ui.accordion.js @@ -12,11 +12,18 @@ */ (function($) { +var widgetName = "accordion"; +var classWidgetName = ".accordion"; + $.widget("ui.accordion", { _init: function() { var options = this.options; + // update widgetName with the name given by the widget factory + widgetName = this.widgetName; + classWidgetName = '.' + widgetName; + if ( options.navigation ) { var current = this.element.find("a").filter(options.navigationFilter); if ( current.length ) { @@ -32,8 +39,8 @@ $.widget("ui.accordion", { this.element.addClass("ui-accordion ui-widget ui-helper-reset"); var groups = this.element.children().addClass("ui-accordion-group"); var headers = options.headers = groups.find("> :first-child").addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all") - .bind("mouseenter.accordion", function(){ $(this).addClass('ui-state-hover'); }) - .bind("mouseleave.accordion", function(){ $(this).removeClass('ui-state-hover'); }); + .bind("mouseenter." + widgetName, function(){ $(this).addClass('ui-state-hover'); }) + .bind("mouseleave." + widgetName, function(){ $(this).removeClass('ui-state-hover'); }); // wrap content elements in div against animation issues headers.next().wrap("<div></div>").addClass("ui-accordion-content").parent().addClass("ui-accordion-content-wrap ui-helper-reset ui-widget-content ui-corner-bottom"); @@ -79,15 +86,15 @@ $.widget("ui.accordion", { options.headers.find('a').attr('tabIndex','-1'); if (options.event) { - this.element.bind((options.event) + ".accordion", clickHandler); + this.element.bind((options.event) + classWidgetName, clickHandler); } }, destroy: function() { - this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion"); - $.removeData(this.element[0], "accordion"); + this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(classWidgetName); + $.removeData(this.element[0], widgetName); var groups = this.element.children().removeClass("ui-accordion-group "+this.options.selectedClass); - var headers = this.options.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top") + var headers = this.options.headers.unbind(classWidgetName).removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top") .removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex"); headers.find("a").removeAttr("tabindex"); headers.children(".ui-icon").remove(); @@ -168,11 +175,11 @@ function scopeCallback(callback, scope) { function completed(cancel) { // if removed while animated data can be empty - if (!$.data(this, "accordion")) { + if (!$.data(this, widgetName)) { return; } - var instance = $.data(this, "accordion"); + var instance = $.data(this, widgetName); var options = instance.options; options.running = cancel ? 0 : --options.running; if ( options.running ) { @@ -188,13 +195,13 @@ function completed(cancel) { } function toggle(toShow, toHide, data, clickedActive, down) { - var options = $.data(this, "accordion").options; + var options = $.data(this, widgetName).options; options.toShow = toShow; options.toHide = toHide; options.data = data; var complete = scopeCallback(completed, this); - $.data(this, "accordion")._trigger("changestart", null, options.data); + $.data(this, widgetName)._trigger("changestart", null, options.data); // count elements to animate options.running = toHide.size() === 0 ? toShow.size() : toHide.size(); @@ -263,7 +270,7 @@ function toggle(toShow, toHide, data, clickedActive, down) { } function clickHandler(event) { - var options = $.data(this, "accordion").options; + var options = $.data(this, widgetName).options; if (options.disabled) { return false; } diff --git a/ui/ui.dialog.js b/ui/ui.dialog.js index 38c24c596..9d8d26044 100644 --- a/ui/ui.dialog.js +++ b/ui/ui.dialog.js @@ -14,6 +14,9 @@ */ (function($) { +var widgetName = "dialog"; +var classWidgetName = ".dialog"; + var setDataSwitch = { dragStart: "start.draggable", drag: "drag.draggable", @@ -30,6 +33,10 @@ var setDataSwitch = { $.widget("ui.dialog", { _init: function() { + // update widgetName with the name given by the widget factory + widgetName = this.widgetName; + classWidgetName = '.' + widgetName; + this.originalTitle = this.element.attr('title'); this.options.title = this.options.title || this.originalTitle; @@ -61,7 +68,7 @@ $.widget("ui.dialog", { && ev.keyCode == $.ui.keyCode.ESCAPE && self.close()); }) .attr({ - role: 'dialog', + role: widgetName, 'aria-labelledby': titleId }) .mousedown(function() { @@ -152,8 +159,8 @@ $.widget("ui.dialog", { (this.overlay && this.overlay.destroy()); this.uiDialog.hide(); this.element - .unbind('.dialog') - .removeData('dialog') + .unbind(classWidgetName) + .removeData(widgetName) .removeClass('ui-dialog-content ui-widget-content') .hide().appendTo('body'); this.uiDialog.remove(); diff --git a/ui/ui.draggable.js b/ui/ui.draggable.js index a1d17aef4..fb351b552 100644 --- a/ui/ui.draggable.js +++ b/ui/ui.draggable.js @@ -12,9 +12,15 @@ */ (function($) { +var widgetName = "draggable"; +var classWidgetName = ".draggable"; + $.widget("ui.draggable", $.extend({}, $.ui.mouse, { _init: function() { + // update widgetName with the name given by the widget factory + widgetName = this.widgetName; + classWidgetName = '.' + widgetName; if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position"))) this.element[0].style.position = 'relative'; @@ -27,8 +33,8 @@ $.widget("ui.draggable", $.extend({}, $.ui.mouse, { }, destroy: function() { - if(!this.element.data('draggable')) return; - this.element.removeData("draggable").unbind(".draggable").removeClass(this.options.cssNamespace+'-draggable '+this.options.cssNamespace+'-draggable-dragging '+this.options.cssNamespace+'-draggable-disabled'); + if(!this.element.data(widgetName)) return; + this.element.removeData(widgetName).unbind(classWidgetName).removeClass(this.options.cssNamespace+'-draggable '+this.options.cssNamespace+'-draggable-dragging '+this.options.cssNamespace+'-draggable-disabled'); this._mouseDestroy(); }, @@ -426,10 +432,10 @@ $.extend($.ui.draggable, { } }); -$.ui.plugin.add("draggable", "connectToSortable", { +$.ui.plugin.add(widgetName, "connectToSortable", { start: function(event, ui) { - var inst = $(this).data("draggable"); + var inst = $(this).data(widgetName); inst.sortables = []; $(ui.options.connectToSortable).each(function() { // 'this' points to a string, and should therefore resolved as query, but instead, if the string is assigned to a variable, it loops through the strings properties, @@ -451,7 +457,7 @@ $.ui.plugin.add("draggable", "connectToSortable", { stop: function(event, ui) { //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper - var inst = $(this).data("draggable"); + var inst = $(this).data(widgetName); $.each(inst.sortables, function() { if(this.instance.isOver) { @@ -486,7 +492,7 @@ $.ui.plugin.add("draggable", "connectToSortable", { }, drag: function(event, ui) { - var inst = $(this).data("draggable"), self = this; + var inst = $(this).data(widgetName), self = this; var checkPos = function(o) { var dyClick = this.offset.click.top, dxClick = this.offset.click.left; @@ -556,7 +562,7 @@ $.ui.plugin.add("draggable", "connectToSortable", { } }); -$.ui.plugin.add("draggable", "cursor", { +$.ui.plugin.add(widgetName, "cursor", { start: function(event, ui) { var t = $('body'); if (t.css("cursor")) ui.options._cursor = t.css("cursor"); @@ -567,7 +573,7 @@ $.ui.plugin.add("draggable", "cursor", { } }); -$.ui.plugin.add("draggable", "iframeFix", { +$.ui.plugin.add(widgetName, "iframeFix", { start: function(event, ui) { $(ui.options.iframeFix === true ? "iframe" : ui.options.iframeFix).each(function() { $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>') @@ -584,7 +590,7 @@ $.ui.plugin.add("draggable", "iframeFix", { } }); -$.ui.plugin.add("draggable", "opacity", { +$.ui.plugin.add(widgetName, "opacity", { start: function(event, ui) { var t = $(ui.helper); if(t.css("opacity")) ui.options._opacity = t.css("opacity"); @@ -595,10 +601,10 @@ $.ui.plugin.add("draggable", "opacity", { } }); -$.ui.plugin.add("draggable", "scroll", { +$.ui.plugin.add(widgetName, "scroll", { start: function(event, ui) { var o = ui.options; - var i = $(this).data("draggable"); + var i = $(this).data(widgetName); if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset(); @@ -606,7 +612,7 @@ $.ui.plugin.add("draggable", "scroll", { drag: function(event, ui) { var o = ui.options, scrolled = false; - var i = $(this).data("draggable"); + var i = $(this).data(widgetName); if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') { @@ -640,10 +646,10 @@ $.ui.plugin.add("draggable", "scroll", { } }); -$.ui.plugin.add("draggable", "snap", { +$.ui.plugin.add(widgetName, "snap", { start: function(event, ui) { - var inst = $(this).data("draggable"); + var inst = $(this).data(widgetName); inst.snapElements = []; $(ui.options.snap.constructor != String ? ( ui.options.snap.items || ':data(draggable)' ) : ui.options.snap).each(function() { @@ -658,7 +664,7 @@ $.ui.plugin.add("draggable", "snap", { }, drag: function(event, ui) { - var inst = $(this).data("draggable"); + var inst = $(this).data(widgetName); var d = ui.options.snapTolerance; var x1 = ui.absolutePosition.left, x2 = x1 + inst.helperProportions.width, @@ -709,7 +715,7 @@ $.ui.plugin.add("draggable", "snap", { } }); -$.ui.plugin.add("draggable", "stack", { +$.ui.plugin.add(widgetName, "stack", { start: function(event, ui) { var group = $.makeArray($(ui.options.stack.group)).sort(function(a,b) { return (parseInt($(a).css("zIndex"),10) || ui.options.stack.min) - (parseInt($(b).css("zIndex"),10) || ui.options.stack.min); @@ -723,7 +729,7 @@ $.ui.plugin.add("draggable", "stack", { } }); -$.ui.plugin.add("draggable", "zIndex", { +$.ui.plugin.add(widgetName, "zIndex", { start: function(event, ui) { var t = $(ui.helper); if(t.css("zIndex")) ui.options._zIndex = t.css("zIndex"); diff --git a/ui/ui.droppable.js b/ui/ui.droppable.js index 1d2f27e75..5c80c7bfe 100644 --- a/ui/ui.droppable.js +++ b/ui/ui.droppable.js @@ -13,9 +13,15 @@ */ (function($) { +var widgetName = "droppable"; +var classWidgetName = ".droppable"; + $.widget("ui.droppable", { _init: function() { + // update widgetName with the name given by the widget factory + widgetName = this.widgetName; + classWidgetName = '.' + widgetName; var o = this.options, accept = o.accept; this.isover = 0; this.isout = 1; @@ -43,8 +49,8 @@ $.widget("ui.droppable", { this.element .removeClass(this.options.cssNamespace+"-droppable "+this.options.cssNamespace+"-droppable-disabled") - .removeData("droppable") - .unbind(".droppable"); + .removeData(widgetName) + .unbind(classWidgetName); }, _setData: function(key, value) { @@ -105,8 +111,8 @@ $.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(":data(droppable)").not("."+draggable.options.cssNamespace+"-draggable-dragging").each(function() { - var inst = $.data(this, 'droppable'); + this.element.find(":data(" + widgetName + ")").not("."+draggable.options.cssNamespace+"-draggable-dragging").each(function() { + var inst = $.data(this, widgetName); if(inst.options.greedy && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)) { childrenIntersection = true; return false; } @@ -203,10 +209,9 @@ $.ui.ddmanager = { current: null, droppables: { 'default': [] }, prepareOffsets: function(t, event) { - var m = $.ui.ddmanager.droppables[t.options.scope]; var type = event ? event.type : null; // workaround for #2317 - var list = (t.currentItem || t.element).find(":data(droppable)").andSelf(); + var list = (t.currentItem || t.element).find(":data(" + widgetName + ")").andSelf(); droppablesLoop: for (var i = 0; i < m.length; i++) { @@ -257,9 +262,9 @@ $.ui.ddmanager = { var parentInstance; if (this.options.greedy) { - var parent = this.element.parents(':data(droppable):eq(0)'); + var parent = this.element.parents(':data(' + widgetName + '):eq(0)'); if (parent.length) { - parentInstance = $.data(parent[0], 'droppable'); + parentInstance = $.data(parent[0], widgetName); parentInstance.greedyChild = (c == 'isover' ? 1 : 0); } } @@ -289,7 +294,7 @@ $.ui.ddmanager = { * Droppable Extensions */ -$.ui.plugin.add("droppable", "activeClass", { +$.ui.plugin.add(widgetName, "activeClass", { activate: function(event, ui) { $(this).addClass(ui.options.activeClass); }, @@ -301,7 +306,7 @@ $.ui.plugin.add("droppable", "activeClass", { } }); -$.ui.plugin.add("droppable", "hoverClass", { +$.ui.plugin.add(widgetName, "hoverClass", { over: function(event, ui) { $(this).addClass(ui.options.hoverClass); }, diff --git a/ui/ui.progressbar.js b/ui/ui.progressbar.js index 47c8848f1..82e6cca78 100644 --- a/ui/ui.progressbar.js +++ b/ui/ui.progressbar.js @@ -12,9 +12,15 @@ */ (function($) { +var widgetName = "progressbar"; +var classWidgetName = ".progressbar"; + $.widget("ui.progressbar", { _init: function() { + // update widgetName with the name given by the widget factory + widgetName = this.widgetName; + classWidgetName = '.' + widgetName; var self = this, options = this.options; @@ -25,7 +31,7 @@ $.widget("ui.progressbar", { + " ui-widget-content" + " ui-corner-all") .attr({ - role: "progressbar", + role: widgetName, "aria-valuemin": this._valueMin(), "aria-valuemax": this._valueMax(), "aria-valuenow": this._value() @@ -48,8 +54,8 @@ $.widget("ui.progressbar", { .removeAttr("aria-valuemin") .removeAttr("aria-valuemax") .removeAttr("aria-valuenow") - .removeData("progressbar") - .unbind(".progressbar"); + .removeData(widgetName) + .unbind(classWidgetName); this.valueDiv.remove(); diff --git a/ui/ui.resizable.js b/ui/ui.resizable.js index c557444cd..d67cb5454 100644 --- a/ui/ui.resizable.js +++ b/ui/ui.resizable.js @@ -12,9 +12,15 @@ */ (function($) { +var widgetName = "resizable"; +var classWidgetName = ".resizable"; + $.widget("ui.resizable", $.extend({}, $.ui.mouse, { _init: function() { + // update widgetName with the name given by the widget factory + widgetName = this.widgetName; + classWidgetName = '.' + widgetName; var self = this, o = this.options; @@ -83,7 +89,7 @@ $.widget("ui.resizable", $.extend({}, $.ui.mouse, { var oel = this.element; this.element = this.element.parent(); // store instance on wrapper - this.element.data('resizable', this); + this.element.data(widgetName, this); //Move margins to the wrapper this.element.css({ marginLeft: oel.css("marginLeft"), marginTop: oel.css("marginTop"), @@ -228,7 +234,7 @@ $.widget("ui.resizable", $.extend({}, $.ui.mouse, { var _destroy = function(exp) { $(exp).removeClass("ui-resizable ui-resizable-disabled") - .removeData("resizable").unbind(".resizable").find('.ui-resizable-handle').remove(); + .removeData(widgetName).unbind(classWidgetName).find('.ui-resizable-handle').remove(); }; _destroy(el); @@ -570,10 +576,10 @@ $.extend($.ui.resizable, { * Resizable Extensions */ -$.ui.plugin.add("resizable", "alsoResize", { +$.ui.plugin.add(widgetName, "alsoResize", { start: function(event, ui) { - var o = ui.options, self = $(this).data("resizable"), + var o = ui.options, self = $(this).data(widgetName), _store = function(exp) { $(exp).each(function() { @@ -593,7 +599,7 @@ $.ui.plugin.add("resizable", "alsoResize", { }, resize: function(event, ui){ - var o = ui.options, self = $(this).data("resizable"), os = self.originalSize, op = self.originalPosition; + var o = ui.options, self = $(this).data(widgetName), os = self.originalSize, op = self.originalPosition; var delta = { height: (self.size.height - os.height) || 0, width: (self.size.width - os.width) || 0, @@ -625,10 +631,10 @@ $.ui.plugin.add("resizable", "alsoResize", { } }); -$.ui.plugin.add("resizable", "animate", { +$.ui.plugin.add(widgetName, "animate", { stop: function(event, ui) { - var o = ui.options, self = $(this).data("resizable"); + var o = ui.options, self = $(this).data(widgetName); var pr = o.proportionallyResize, ista = pr && (/textarea/i).test(pr.get(0).nodeName), soffseth = ista && $.ui.hasScroll(pr.get(0), 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height, @@ -664,10 +670,10 @@ $.ui.plugin.add("resizable", "animate", { }); -$.ui.plugin.add("resizable", "containment", { +$.ui.plugin.add(widgetName, "containment", { start: function(event, ui) { - var o = ui.options, self = $(this).data("resizable"), el = self.element; + var o = ui.options, self = $(this).data(widgetName), el = self.element; var oc = o.containment, ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc; if (!ce) return; @@ -699,7 +705,7 @@ $.ui.plugin.add("resizable", "containment", { }, resize: function(event, ui) { - var o = ui.options, self = $(this).data("resizable"), + var o = ui.options, self = $(this).data(widgetName), ps = self.containerSize, co = self.containerOffset, cs = self.size, cp = self.position, pRatio = o._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = self.containerElement; @@ -733,7 +739,7 @@ $.ui.plugin.add("resizable", "containment", { }, stop: function(event, ui){ - var o = ui.options, self = $(this).data("resizable"), cp = self.position, + var o = ui.options, self = $(this).data(widgetName), cp = self.position, co = self.containerOffset, cop = self.containerPosition, ce = self.containerElement; var helper = $(self.helper), ho = helper.offset(), w = helper.outerWidth() - self.sizeDiff.width, h = helper.outerHeight() - self.sizeDiff.height; @@ -747,10 +753,10 @@ $.ui.plugin.add("resizable", "containment", { } }); -$.ui.plugin.add("resizable", "ghost", { +$.ui.plugin.add(widgetName, "ghost", { start: function(event, ui) { - var o = ui.options, self = $(this).data("resizable"), pr = o.proportionallyResize, cs = self.size; + var o = ui.options, self = $(this).data(widgetName), pr = o.proportionallyResize, cs = self.size; if (!pr) self.ghost = self.element.clone(); else self.ghost = pr.clone(); @@ -765,23 +771,23 @@ $.ui.plugin.add("resizable", "ghost", { }, resize: function(event, ui){ - var o = ui.options, self = $(this).data("resizable"), pr = o.proportionallyResize; + var o = ui.options, self = $(this).data(widgetName), pr = o.proportionallyResize; if (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width }); }, stop: function(event, ui){ - var o = ui.options, self = $(this).data("resizable"), pr = o.proportionallyResize; + var o = ui.options, self = $(this).data(widgetName), pr = o.proportionallyResize; if (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0)); } }); -$.ui.plugin.add("resizable", "grid", { +$.ui.plugin.add(widgetName, "grid", { resize: function(event, ui) { - var o = ui.options, self = $(this).data("resizable"), cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey; + var o = ui.options, self = $(this).data(widgetName), cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey; o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid; var ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1); diff --git a/ui/ui.selectable.js b/ui/ui.selectable.js index d8f86a406..17728d298 100644 --- a/ui/ui.selectable.js +++ b/ui/ui.selectable.js @@ -12,9 +12,16 @@ */ (function($) { +var widgetName = "selectable"; +var classWidgetName = ".selectable"; + $.widget("ui.selectable", $.extend({}, $.ui.mouse, { _init: function() { + // update widgetName with the name given by the widget factory + widgetName = this.widgetName; + classWidgetName = '.' + widgetName; + var self = this; this.element.addClass("ui-selectable"); @@ -56,8 +63,8 @@ $.widget("ui.selectable", $.extend({}, $.ui.mouse, { destroy: function() { this.element .removeClass("ui-selectable ui-selectable-disabled") - .removeData("selectable") - .unbind(".selectable"); + .removeData(widgetName) + .unbind(classWidgetName); this._mouseDestroy(); }, diff --git a/ui/ui.slider.js b/ui/ui.slider.js index d2762deff..6b21e162c 100644 --- a/ui/ui.slider.js +++ b/ui/ui.slider.js @@ -13,9 +13,15 @@ (function($) { +var widgetName = "slider"; +var classWidgetName = ".slider"; + $.widget("ui.slider", $.extend({}, $.ui.mouse, { _init: function() { + // update widgetName with the name given by the widget factory + widgetName = this.widgetName; + classWidgetName = '.' + widgetName; var self = this, o = this.options; this._keySliding = false; @@ -160,8 +166,8 @@ $.widget("ui.slider", $.extend({}, $.ui.mouse, { + " ui-widget" + " ui-widget-content" + " ui-corner-all") - .removeData("slider") - .unbind(".slider"); + .removeData(widgetName) + .unbind(classWidgetName); this._mouseDestroy(); diff --git a/ui/ui.sortable.js b/ui/ui.sortable.js index 49387a442..dd4014e14 100644 --- a/ui/ui.sortable.js +++ b/ui/ui.sortable.js @@ -12,8 +12,14 @@ */ (function($) { +var widgetName = "sortable"; +var classWidgetName = ".sortable"; + $.widget("ui.sortable", $.extend({}, $.ui.mouse, { _init: function() { + // update widgetName with the name given by the widget factory + widgetName = this.widgetName; + classWidgetName = '.' + widgetName; var o = this.options; this.containerCache = {}; @@ -36,8 +42,8 @@ $.widget("ui.sortable", $.extend({}, $.ui.mouse, { destroy: function() { this.element .removeClass(this.options.cssNamespace+"-sortable "+this.options.cssNamespace+"-sortable-disabled") - .removeData("sortable") - .unbind(".sortable"); + .removeData(widgetName) + .unbind(classWidgetName); this._mouseDestroy(); for ( var i = this.items.length - 1; i >= 0; i-- ) @@ -421,7 +427,7 @@ $.widget("ui.sortable", $.extend({}, $.ui.mouse, { for (var i = this.options.connectWith.length - 1; i >= 0; i--){ var cur = $(this.options.connectWith[i]); for (var j = cur.length - 1; j >= 0; j--){ - var inst = $.data(cur[j], 'sortable'); + var inst = $.data(cur[j], widgetName); if(inst && inst != this && !inst.options.disabled) { queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not("."+inst.options.cssNamespace+"-sortable-helper"), inst]); } @@ -468,7 +474,7 @@ $.widget("ui.sortable", $.extend({}, $.ui.mouse, { for (var i = this.options.connectWith.length - 1; i >= 0; i--){ var cur = $(this.options.connectWith[i]); for (var j = cur.length - 1; j >= 0; j--){ - var inst = $.data(cur[j], 'sortable'); + var inst = $.data(cur[j], widgetName); if(inst && inst != this && !inst.options.disabled) { queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]); this.containers.push(inst); @@ -943,38 +949,38 @@ $.extend($.ui.sortable, { * Sortable Extensions */ -$.ui.plugin.add("sortable", "cursor", { +$.ui.plugin.add(widgetName, "cursor", { start: function(event, ui) { - var t = $('body'), i = $(this).data('sortable'); + var t = $('body'), i = $(this).data(widgetName); if (t.css("cursor")) i.options._cursor = t.css("cursor"); t.css("cursor", i.options.cursor); }, beforeStop: function(event, ui) { - var i = $(this).data('sortable'); + var i = $(this).data(widgetName); if (i.options._cursor) $('body').css("cursor", i.options._cursor); } }); -$.ui.plugin.add("sortable", "opacity", { +$.ui.plugin.add(widgetName, "opacity", { start: function(event, ui) { - var t = ui.helper, i = $(this).data('sortable'); + var t = ui.helper, i = $(this).data(widgetName); if(t.css("opacity")) i.options._opacity = t.css("opacity"); t.css('opacity', i.options.opacity); }, beforeStop: function(event, ui) { - var i = $(this).data('sortable'); + var i = $(this).data(widgetName); if(i.options._opacity) $(ui.helper).css('opacity', i.options._opacity); } }); -$.ui.plugin.add("sortable", "scroll", { +$.ui.plugin.add(widgetName, "scroll", { start: function(event, ui) { - var i = $(this).data("sortable"), o = i.options; + var i = $(this).data(widgetName), o = i.options; if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset(); }, sort: function(event, ui) { - var i = $(this).data("sortable"), o = i.options, scrolled = false; + var i = $(this).data(widgetName), o = i.options, scrolled = false; if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') { @@ -1008,14 +1014,14 @@ $.ui.plugin.add("sortable", "scroll", { } }); -$.ui.plugin.add("sortable", "zIndex", { +$.ui.plugin.add(widgetName, "zIndex", { start: function(event, ui) { - var t = ui.helper, i = $(this).data('sortable'); + var t = ui.helper, i = $(this).data(widgetName); if(t.css("zIndex")) i.options._zIndex = t.css("zIndex"); t.css('zIndex', i.options.zIndex); }, beforeStop: function(event, ui) { - var i = $(this).data('sortable'); + var i = $(this).data(widgetName); if(i.options._zIndex) $(ui.helper).css('zIndex', i.options._zIndex == 'auto' ? '' : i.options._zIndex); } }); diff --git a/ui/ui.tabs.js b/ui/ui.tabs.js index f5bd931de..9c688fcb6 100644 --- a/ui/ui.tabs.js +++ b/ui/ui.tabs.js @@ -12,28 +12,33 @@ */ (function($) { +var widgetName = "tabs"; +var classWidgetName = ".tabs"; + $.widget("ui.tabs", { _init: function() { + widgetName = this.widgetName; + classWidgetName = '.' + widgetName; // create tabs this._tabify(true); }, destroy: function() { var o = this.options; - this.list.unbind('.tabs') - .removeClass(o.navClass).removeData('tabs'); + this.list.unbind(classWidgetName) + .removeClass(o.navClass).removeData(widgetName); this.$tabs.each(function() { - var href = $.data(this, 'href.tabs'); + var href = $.data(this, 'href.' + widgetName); if (href) this.href = href; - var $this = $(this).unbind('.tabs'); + var $this = $(this).unbind(classWidgetName); $.each(['href', 'load', 'cache'], function(i, prefix) { - $this.removeData(prefix + '.tabs'); + $this.removeData(prefix + classWidgetName); }); }); - this.$lis.unbind('.tabs').add(this.$panels).each(function() { - if ($.data(this, 'destroy.tabs')) + this.$lis.unbind(classWidgetName).add(this.$panels).each(function() { + if ($.data(this, 'destroy.' + widgetName)) $(this).remove(); else $(this).removeClass([o.tabClass, o.selectedClass, o.deselectableClass, @@ -85,15 +90,15 @@ $.widget("ui.tabs", { self.$panels = self.$panels.add(self._sanitizeSelector(a.hash)); // remote tab else if ($(a).attr('href') != '#') { // prevent loading the page itself if href is just "#" - $.data(a, 'href.tabs', a.href); // required for restore on destroy - $.data(a, 'load.tabs', a.href); // mutable + $.data(a, 'href.' + widgetName, a.href); // required for restore on destroy + $.data(a, 'load.' + widgetName, a.href); // mutable var id = self._tabId(a); a.href = '#' + id; var $panel = $('#' + id); if (!$panel.length) { $panel = $(o.panelTemplate).attr('id', id).addClass(o.panelClass) .insertAfter(self.$panels[i - 1] || self.list); - $panel.data('destroy.tabs', true); + $panel.data('destroy.' + widgetName, true); } self.$panels = self.$panels.add($panel); } @@ -163,7 +168,7 @@ $.widget("ui.tabs", { }; // load if remote tab - if ($.data(this.$tabs[o.selected], 'load.tabs')) + if ($.data(this.$tabs[o.selected], 'load.' + widgetName)) this.load(o.selected, onShow); // just trigger show event else onShow(); @@ -173,16 +178,16 @@ $.widget("ui.tabs", { var handleState = function(state, el) { if (el.is(':not(.' + o.disabledClass + ')')) el.toggleClass('ui-state-' + state); }; - this.$lis.bind('mouseover.tabs mouseout.tabs', function() { + this.$lis.bind(['mouseover.', widgetName, ' mouseout.', widgetName].join(''), function() { handleState('hover', $(this)); }); - this.$tabs.bind('focus.tabs blur.tabs', function() { + this.$tabs.bind(['focus.', widgetName, ' blur.', widgetName].join(''), function() { handleState('focus', $(this).parents('li:first')); }); // clean up to avoid memory leaks in certain versions of IE 6 $(window).bind('unload', function() { - self.$lis.add(self.$tabs).unbind('.tabs'); + self.$lis.add(self.$tabs).unbind(classWidgetName); self.$lis = self.$tabs = self.$panels = null; }); @@ -199,7 +204,7 @@ $.widget("ui.tabs", { $(li)[$.inArray(i, o.disabled) != -1 && !$(li).hasClass(o.selectedClass) ? 'addClass' : 'removeClass'](o.disabledClass); // reset cache if switching from cached to not cached - if (o.cache === false) this.$tabs.removeData('cache.tabs'); + if (o.cache === false) this.$tabs.removeData('cache.' + widgetName); // set up animations var hideFx, showFx; @@ -257,7 +262,7 @@ $.widget("ui.tabs", { } // attach tab event handler, unbind to avoid duplicates from former tabifying... - this.$tabs.unbind('.tabs').bind(o.event + '.tabs', function() { + this.$tabs.unbind(classWidgetName).bind(o.event + classWidgetName, function() { //var trueClick = event.clientX; // add to history only if true click occured, not a triggered click var $li = $(this).parents('li:eq(0)'), @@ -335,7 +340,7 @@ $.widget("ui.tabs", { }); // disable click if event is configured to something else - if (o.event != 'click') this.$tabs.bind('click.tabs', function(){return false;}); + if (o.event != 'click') this.$tabs.bind('click.' + widgetName, function(){return false;}); }, @@ -345,7 +350,7 @@ $.widget("ui.tabs", { var o = this.options; var $li = $(o.tabTemplate.replace(/#\{href\}/g, url).replace(/#\{label\}/g, label)); - $li.addClass(o.tabClass).data('destroy.tabs', true); + $li.addClass(o.tabClass).data('destroy.' + widgetName, true); var id = url.indexOf('#') == 0 ? url.replace('#', '') : this._tabId( $('a:first-child', $li)[0] ); @@ -354,7 +359,7 @@ $.widget("ui.tabs", { if (!$panel.length) { $panel = $(o.panelTemplate).attr('id', id) .addClass(o.hideClass) - .data('destroy.tabs', true); + .data('destroy.' + widgetName, true); } $panel.addClass(o.panelClass); if (index >= this.$lis.length) { @@ -374,7 +379,7 @@ $.widget("ui.tabs", { if (this.$tabs.length == 1) { $li.addClass(o.selectedClass); $panel.removeClass(o.hideClass); - var href = $.data(this.$tabs[0], 'load.tabs'); + var href = $.data(this.$tabs[0], 'load.' + widgetName); if (href) this.load(index, href); } @@ -436,18 +441,18 @@ $.widget("ui.tabs", { // TODO make null as argument work if (typeof index == 'string') index = this.$tabs.index( this.$tabs.filter('[href$=' + index + ']')[0] ); - this.$tabs.eq(index).trigger(this.options.event + '.tabs'); + this.$tabs.eq(index).trigger(this.options.event + classWidgetName); }, load: function(index, callback) { // callback is for internal usage only var self = this, o = this.options, $a = this.$tabs.eq(index), a = $a[0], - bypassCache = callback == undefined || callback === false, url = $a.data('load.tabs'); + bypassCache = callback == undefined || callback === false, url = $a.data('load.' + widgetName); callback = callback || function() {}; // no remote or from cache - just finish with callback - if (!url || !bypassCache && $.data(a, 'cache.tabs')) { + if (!url || !bypassCache && $.data(a, 'cache.' + widgetName)) { callback(); return; } @@ -462,7 +467,7 @@ $.widget("ui.tabs", { self.$tabs.filter('.' + o.loadingClass).removeClass(o.loadingClass) .each(function() { if (o.spinner) - inner(this).parent().html(inner(this).data('label.tabs')); + inner(this).parent().html(inner(this).data('label.' + widgetName)); }); self.xhr = null; }; @@ -470,7 +475,7 @@ $.widget("ui.tabs", { if (o.spinner) { var label = inner(a).html(); inner(a).wrapInner('<em></em>') - .find('em').data('label.tabs', label).html(o.spinner); + .find('em').data('label.' + widgetName, label).html(o.spinner); } var ajaxOptions = $.extend({}, o.ajaxOptions, { @@ -480,7 +485,7 @@ $.widget("ui.tabs", { cleanup(); if (o.cache) - $.data(a, 'cache.tabs', true); // if loaded once do not load them again + $.data(a, 'cache.' + widgetName, true); // if loaded once do not load them again // callbacks self._trigger('load', null, self.ui(self.$tabs[index], self.$panels[index])); @@ -505,7 +510,7 @@ $.widget("ui.tabs", { }, url: function(index, url) { - this.$tabs.eq(index).removeData('cache.tabs').data('load.tabs', url); + this.$tabs.eq(index).removeData('cache.' + widgetName).data('load.' + widgetName, url); }, ui: function(tab, panel) { @@ -577,9 +582,9 @@ $.extend($.ui.tabs.prototype, { if (ms) { start(); if (!continuing) - this.$tabs.bind(this.options.event + '.tabs', stop); + this.$tabs.bind(this.options.event + classWidgetName, stop); else - this.$tabs.bind(this.options.event + '.tabs', function() { + this.$tabs.bind(this.options.event + classWidgetName, function() { stop(); t = self.options.selected; start(); @@ -588,7 +593,7 @@ $.extend($.ui.tabs.prototype, { // stop interval else { stop(); - this.$tabs.unbind(this.options.event + '.tabs', stop); + this.$tabs.unbind(this.options.event + classWidgetName, stop); } } }); |