aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard D. Worth <rdworth@gmail.com>2010-04-09 14:43:44 -0400
committerRichard D. Worth <rdworth@gmail.com>2010-04-09 14:43:44 -0400
commit3291d3951ab177cde692f9c763248027b3c5a128 (patch)
tree368b5d5542d263e2d48378ac053e218cb10e6af7
parentffc29bba052e4bc8b84e4c2e16036140148b6f9c (diff)
downloadjquery-ui-3291d3951ab177cde692f9c763248027b3c5a128.tar.gz
jquery-ui-3291d3951ab177cde692f9c763248027b3c5a128.zip
sortable: don't call the base widget _setOption for disabled to avoid the ui-state-disabled class being added. Fixes #5501 - sortable: disabled should not have the ui-state-disabled class
-rw-r--r--tests/unit/sortable/sortable_methods.js3
-rw-r--r--ui/jquery.ui.sortable.js12
2 files changed, 14 insertions, 1 deletions
diff --git a/tests/unit/sortable/sortable_methods.js b/tests/unit/sortable/sortable_methods.js
index adccc8c87..c4b5cdc08 100644
--- a/tests/unit/sortable/sortable_methods.js
+++ b/tests/unit/sortable/sortable_methods.js
@@ -84,7 +84,7 @@ test("enable", function() {
});
test("disable", function() {
- expect(6);
+ expect(7);
el = $("#sortable").sortable({ disabled: false });
sort($("li", el)[0], 0, 40, 2, '.sortable({ disabled: false })');
@@ -97,6 +97,7 @@ test("disable", function() {
sort($("li", el)[0], 0, 40, 2, '.sortable({ disabled: false })');
el.sortable("option", "disabled", true);
equals(el.sortable("option", "disabled"), true, "disabled option setter");
+ ok(el.sortable("widget").is(":not(.ui-state-disabled)"), "sortable element does not get ui-state-disabled since it's an interaction");
sort($("li", el)[0], 0, 40, 0, '.sortable("option", "disabled", true)');
var expected = $('<div></div>').sortable(),
diff --git a/ui/jquery.ui.sortable.js b/ui/jquery.ui.sortable.js
index 28be062f6..0fa3a1253 100644
--- a/ui/jquery.ui.sortable.js
+++ b/ui/jquery.ui.sortable.js
@@ -73,6 +73,18 @@ $.widget("ui.sortable", $.ui.mouse, {
return this;
},
+ _setOption: function(key, value){
+ if ( key === "disabled" ) {
+ this.options[ key ] = value;
+
+ this.widget()
+ [ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" );
+ } else {
+ // Don't call widget base _setOption for disable as it adds ui-state-disabled class
+ $.Widget.prototype._setOption.apply(self, arguments);
+ }
+ },
+
_mouseCapture: function(event, overrideHandle) {
if (this.reverting) {