Skip to content

Commit 3291d39

Browse files
committed
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
1 parent ffc29bb commit 3291d39

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

tests/unit/sortable/sortable_methods.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ test("enable", function() {
8484
});
8585

8686
test("disable", function() {
87-
expect(6);
87+
expect(7);
8888
el = $("#sortable").sortable({ disabled: false });
8989
sort($("li", el)[0], 0, 40, 2, '.sortable({ disabled: false })');
9090

@@ -97,6 +97,7 @@ test("disable", function() {
9797
sort($("li", el)[0], 0, 40, 2, '.sortable({ disabled: false })');
9898
el.sortable("option", "disabled", true);
9999
equals(el.sortable("option", "disabled"), true, "disabled option setter");
100+
ok(el.sortable("widget").is(":not(.ui-state-disabled)"), "sortable element does not get ui-state-disabled since it's an interaction");
100101
sort($("li", el)[0], 0, 40, 0, '.sortable("option", "disabled", true)');
101102

102103
var expected = $('<div></div>').sortable(),

ui/jquery.ui.sortable.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,18 @@ $.widget("ui.sortable", $.ui.mouse, {
7373
return this;
7474
},
7575

76+
_setOption: function(key, value){
77+
if ( key === "disabled" ) {
78+
this.options[ key ] = value;
79+
80+
this.widget()
81+
[ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" );
82+
} else {
83+
// Don't call widget base _setOption for disable as it adds ui-state-disabled class
84+
$.Widget.prototype._setOption.apply(self, arguments);
85+
}
86+
},
87+
7688
_mouseCapture: function(event, overrideHandle) {
7789

7890
if (this.reverting) {

0 commit comments

Comments
 (0)