diff options
author | Richard D. Worth <rdworth@gmail.com> | 2010-04-09 14:43:44 -0400 |
---|---|---|
committer | Richard D. Worth <rdworth@gmail.com> | 2010-04-09 14:43:44 -0400 |
commit | 3291d3951ab177cde692f9c763248027b3c5a128 (patch) | |
tree | 368b5d5542d263e2d48378ac053e218cb10e6af7 | |
parent | ffc29bba052e4bc8b84e4c2e16036140148b6f9c (diff) | |
download | jquery-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.js | 3 | ||||
-rw-r--r-- | ui/jquery.ui.sortable.js | 12 |
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) { |