Skip to content

Commit b65c062

Browse files
committed
Selectable: Add classes option
1 parent 1ae5763 commit b65c062

File tree

2 files changed

+27
-29
lines changed

2 files changed

+27
-29
lines changed

tests/unit/selectable/selectable_common.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ TestHelpers.commonWidgetTests("selectable", {
33
appendTo: "body",
44
autoRefresh: true,
55
cancel: "input,textarea,button,select,option",
6+
classes: {},
67
delay: 0,
78
disabled: false,
89
distance: 0,

ui/selectable.js

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ return $.widget("ui.selectable", $.ui.mouse, {
3535
options: {
3636
appendTo: "body",
3737
autoRefresh: true,
38+
classes: {},
3839
distance: 0,
3940
filter: "*",
4041
tolerance: "touch",
@@ -48,18 +49,17 @@ return $.widget("ui.selectable", $.ui.mouse, {
4849
unselecting: null
4950
},
5051
_create: function() {
51-
var selectees,
52-
that = this;
52+
var that = this;
5353

54-
this.element.addClass("ui-selectable");
54+
this._addClass( "ui-selectable" );
5555

5656
this.dragged = false;
5757

5858
// cache selectee children based on filter
5959
this.refresh = function() {
60-
selectees = $(that.options.filter, that.element[0]);
61-
selectees.addClass("ui-selectee");
62-
selectees.each(function() {
60+
that.selectees = $(that.options.filter, that.element[0]);
61+
that._addClass( that.selectees, "ui-selectee" );
62+
that.selectees.each(function() {
6363
var $this = $(this),
6464
pos = $this.offset();
6565
$.data(this, "selectable-item", {
@@ -78,19 +78,16 @@ return $.widget("ui.selectable", $.ui.mouse, {
7878
};
7979
this.refresh();
8080

81-
this.selectees = selectees.addClass("ui-selectee");
81+
this._addClass( this.selectees, "ui-selectee" );
8282

8383
this._mouseInit();
8484

85-
this.helper = $("<div class='ui-selectable-helper'></div>");
85+
this.helper = $("<div>");
86+
this._addClass( this.helper, "ui-selectable-helper" );
8687
},
8788

8889
_destroy: function() {
89-
this.selectees
90-
.removeClass("ui-selectee")
91-
.removeData("selectable-item");
92-
this.element
93-
.removeClass("ui-selectable ui-selectable-disabled");
90+
this.selectees.removeData("selectable-item");
9491
this._mouseDestroy();
9592
},
9693

@@ -125,9 +122,9 @@ return $.widget("ui.selectable", $.ui.mouse, {
125122
var selectee = $.data(this, "selectable-item");
126123
selectee.startselected = true;
127124
if (!event.metaKey && !event.ctrlKey) {
128-
selectee.$element.removeClass("ui-selected");
125+
that._removeClass( selectee.$element, "ui-selected" );
129126
selectee.selected = false;
130-
selectee.$element.addClass("ui-unselecting");
127+
that._addClass( selectee.$element, "ui-unselecting" );
131128
selectee.unselecting = true;
132129
// selectable UNSELECTING callback
133130
that._trigger("unselecting", event, {
@@ -141,9 +138,8 @@ return $.widget("ui.selectable", $.ui.mouse, {
141138
selectee = $.data(this, "selectable-item");
142139
if (selectee) {
143140
doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass("ui-selected");
144-
selectee.$element
145-
.removeClass(doSelect ? "ui-unselecting" : "ui-selected")
146-
.addClass(doSelect ? "ui-selecting" : "ui-unselecting");
141+
that._removeClass( selectee.$element, doSelect ? "ui-unselecting" : "ui-selected")
142+
._addClass( selectee.$element, doSelect ? "ui-selecting" : "ui-unselecting");
147143
selectee.unselecting = !doSelect;
148144
selectee.selecting = doSelect;
149145
selectee.selected = doSelect;
@@ -201,15 +197,15 @@ return $.widget("ui.selectable", $.ui.mouse, {
201197
if (hit) {
202198
// SELECT
203199
if (selectee.selected) {
204-
selectee.$element.removeClass("ui-selected");
200+
that._removeClass( selectee.$element, "ui-selected" );
205201
selectee.selected = false;
206202
}
207203
if (selectee.unselecting) {
208-
selectee.$element.removeClass("ui-unselecting");
204+
that._removeClass( selectee.$element, "ui-unselecting" );
209205
selectee.unselecting = false;
210206
}
211207
if (!selectee.selecting) {
212-
selectee.$element.addClass("ui-selecting");
208+
that._addClass( selectee.$element, "ui-selecting" );
213209
selectee.selecting = true;
214210
// selectable SELECTING callback
215211
that._trigger("selecting", event, {
@@ -220,15 +216,15 @@ return $.widget("ui.selectable", $.ui.mouse, {
220216
// UNSELECT
221217
if (selectee.selecting) {
222218
if ((event.metaKey || event.ctrlKey) && selectee.startselected) {
223-
selectee.$element.removeClass("ui-selecting");
219+
that._removeClass( selectee.$element, "ui-selecting" );
224220
selectee.selecting = false;
225-
selectee.$element.addClass("ui-selected");
221+
that._addClass( selectee.$element, "ui-selected" );
226222
selectee.selected = true;
227223
} else {
228-
selectee.$element.removeClass("ui-selecting");
224+
that._removeClass( selectee.$element, "ui-selecting" );
229225
selectee.selecting = false;
230226
if (selectee.startselected) {
231-
selectee.$element.addClass("ui-unselecting");
227+
that._addClass( selectee.$element, "ui-unselecting" );
232228
selectee.unselecting = true;
233229
}
234230
// selectable UNSELECTING callback
@@ -239,10 +235,10 @@ return $.widget("ui.selectable", $.ui.mouse, {
239235
}
240236
if (selectee.selected) {
241237
if (!event.metaKey && !event.ctrlKey && !selectee.startselected) {
242-
selectee.$element.removeClass("ui-selected");
238+
that._removeClass( selectee.$element, "ui-selected" );
243239
selectee.selected = false;
244240

245-
selectee.$element.addClass("ui-unselecting");
241+
that._addClass( selectee.$element, "ui-unselecting" );
246242
selectee.unselecting = true;
247243
// selectable UNSELECTING callback
248244
that._trigger("unselecting", event, {
@@ -263,7 +259,7 @@ return $.widget("ui.selectable", $.ui.mouse, {
263259

264260
$(".ui-unselecting", this.element[0]).each(function() {
265261
var selectee = $.data(this, "selectable-item");
266-
selectee.$element.removeClass("ui-unselecting");
262+
that._removeClass( selectee.$element, "ui-unselecting" );
267263
selectee.unselecting = false;
268264
selectee.startselected = false;
269265
that._trigger("unselected", event, {
@@ -272,7 +268,8 @@ return $.widget("ui.selectable", $.ui.mouse, {
272268
});
273269
$(".ui-selecting", this.element[0]).each(function() {
274270
var selectee = $.data(this, "selectable-item");
275-
selectee.$element.removeClass("ui-selecting").addClass("ui-selected");
271+
that._removeClass( selectee.$element, "ui-selecting" )
272+
._addClass( selectee.$element, "ui-selected" );
276273
selectee.selecting = false;
277274
selectee.selected = true;
278275
selectee.startselected = true;

0 commit comments

Comments
 (0)