r2748 - spinner: consolidated bindings on spin buttons and added more TR styles for hover and focus
Author: pazu2k@gmail.com
Date: Sat Jun 13 10:12:25 2009
New Revision: 2748
Modified:
branches/dev/spinner/ui/ui.spinner.js
Log:
spinner: consolidated bindings on spin buttons and added more TR styles for
hover and focus
Modified: branches/dev/spinner/ui/ui.spinner.js
==============================================================================
--- branches/dev/spinner/ui/ui.spinner.js (original)
+++ branches/dev/spinner/ui/ui.spinner.js Sat Jun 13 10:12:25 2009
@@ -91,60 +91,16 @@
// add behaviours
widget
- .find('.ui-spinner-up')
- .bind('mousedown', function(event) {
- $(this).addClass(active);
- if (!self.counter) {
- self.counter = 1;
- }
- self._mousedown(100, '_up', event);
- })
- .bind('mouseup', function(event) {
- $(this).removeClass(active);
- if (self.counter == 1) {
- self._up(options.step, event);
- }
- self._mouseup(event);
- })
- // mousedown/mouseup capture first click, now handle second click
- .bind('dblclick', function(event) {
- if ($.browser.msie) {
- $(this).removeClass(active);
- self._up(options.step, event);
- self._mouseup(event);
- }
- })
- .end()
- .find('.ui-spinner-down')
- .bind('mousedown', function(event) {
- $(this).addClass(active);
- if (!self.counter) {
- self.counter = 1;
- }
- self._mousedown(100, '_down', event);
- })
- .bind('mouseup', function(event) {
- $(this).removeClass(active);
- if (self.counter == 1) {
- self._down(options.step, event);
- }
- self._mouseup(event);
- })
- // mousedown/mouseup capture first click, now handle second click in IE
- .bind('dblclick', function(event) {
- if ($.browser.msie) {
- $(this).removeClass(active);
- self._down(options.step, event);
- self._mouseup(event);
- }
- })
- .end()
.hover(function() {
+ if (!options.readOnly && !self.disabled) {
+ $(this).addClass(hover);
+ }
self.hovered = true;
if (typeof options.hide != 'boolean' && !self.focused
&& !self.disabled) {
self._delay(self._show, 100, 'hide', options.hide);
}
}, function() {
+ $(this).removeClass(hover);
self.hovered = false;
if (typeof options.hide != 'boolean' && !self.focused) {
self._delay(self._hide, 100, 'hide', options.hide);
@@ -152,14 +108,46 @@
});
self.buttons = widget.find('.ui-spinner-button')
+ .bind('mousedown', function(event) {
+ if (!self.counter) {
+ self.counter = 1;
+ }
+ self._mousedown(100,
$(this).hasClass('ui-spinner-up') ? '_up' : '_down', event);
+
+ if (!self.disabled) {
+ $(this).addClass(active);
+ if (!options.readOnly) {
+ widget.addClass(active);
+ }
+ }
+ })
+ .bind('mouseup', function(event) {
+ if (self.counter == 1) {
+
self[$(this).hasClass('ui-spinner-up') ? '_up' : '_down'](options.step,
event);
+ }
+ self._mouseup(event);
+
+ $(this).removeClass(active);
+ })
+ // mousedown/mouseup capture first click, now handle second click
+ .bind('dblclick', function(event) {
+ if ($.browser.msie) {
+ $(this).removeClass(active);
+
self[$(this).hasClass('ui-spinner-up') ? '_up' : '_down'](options.step,
event);
+ self._mouseup(event);
+ }
+ })
.hover(function() {
- $(this).addClass(hover);
+ if (!self.disabled) {
+ $(this).addClass(hover);
+ }
}, function(event) {
$(this).removeClass(active + ' ' + hover);
if (self.timer) {
self._mouseup(event);
}
});
+
if (options.hide) {
self._hide();
}
@@ -203,13 +191,14 @@
self.element.blur();
return false;
}
-
+ widget.addClass(active);
self.focused = true;
if (!self.hovered && typeof options.hide != 'boolean'
&& !self.disabled) {
self._delay(self._show, 100, 'hide', options.hide);
}
})
.bind('blur'+namespace, function(event) {
+ widget.removeClass(active);
self.focused = false;
if (!self.hovered && typeof options.hide != 'boolean') {
self._delay(self._hide, 100, 'hide', options.hide);
@@ -235,7 +224,7 @@
dir = options.dir,
spinnerClass = options.spinnerClass,
spinnerBoxClass = 'ui-spinner-box',
- widgetClasses = 'ui-spinner ui-widget ui-widget-content ui-corner-all
ui-spinner-' + dir + (spinnerClass ? ' '+ spinnerClass: ''),
+ widgetClasses = 'ui-spinner ui-state-default ui-widget
ui-widget-content ui-corner-all ui-spinner-' + dir + (spinnerClass ? ' '+
spinnerClass: ''),
widget = self.element
.addClass(spinnerBoxClass)
.attr('autocomplete', 'off') // switch off autocomplete in opera