Is there a way to programmatically 'unselect' any and all selected elements for a given $("#selectable").selectable()
widget?
Asked
Active
Viewed 9,234 times
11

Nate
- 30,286
- 23
- 113
- 184

Derek Adair
- 21,846
- 31
- 97
- 134
3 Answers
17
The following command works at http://jqueryui.com/demos/selectable/
$('#selectable .ui-selected').removeClass('ui-selected')
Since a class's existence defines if an item is selected, simply removing the item will deselect it.
Note, you can also take advantage of toggleClass and addClass functions.
EDIT:
Try this too: $('#selectable').trigger('unselected')
. That might also trigger all the css changes as well, and this way the unselected event also gets triggered for whatever else may be hooked to it.

Alexander Bird
- 38,679
- 42
- 124
- 159
-
4by this way, seem it does not raise "unselected" event :( – thangcao Apr 13 '14 at 05:58
-
1I think the proper way with latest jquery-ui is, $('#selectable').data("ui-selectable")._mouseStop(null); – Md. Aug 07 '19 at 19:32
1
The accepted answer only unselects visually. It doesn't trigger the unselected callback.
This can be used instead:
$(".ui-selected").each(function(i,e){
$(".selector").selectable("triggerunselect",e);
});

kb_
- 131
- 8
0
You could destroy and reinit the current "selectable" instance.
For instance like this:
$("#selectable-area").selectable("destroy");
then
$("#selectable-area").selectable();

Alberto Costa
- 127
- 1
- 6