11

Is there a way to programmatically 'unselect' any and all selected elements for a given $("#selectable").selectable() widget?

Nate
  • 30,286
  • 23
  • 113
  • 184
Derek Adair
  • 21,846
  • 31
  • 97
  • 134

3 Answers3

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
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