Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion ui/widget.js
Original file line number Diff line number Diff line change
Expand Up @@ -590,7 +590,9 @@ $.Widget.prototype = {
delegateElement = this.widget();
} else {
element = delegateElement = $( element );
this.bindings = this.bindings.add( element );
if ( !this.bindings.find(element).length ) {
this.bindings = this.bindings.add( element );
}
}

$.each( handlers, function( event, handler ) {
Expand Down
43 changes: 20 additions & 23 deletions ui/widgets/selectable.js
Original file line number Diff line number Diff line change
Expand Up @@ -139,31 +139,28 @@ return $.widget( "ui.selectable", $.ui.mouse, {
}
} );

$( event.target ).parents().addBack().each( function() {
var doSelect,
selectee = $.data( this, "selectable-item" );
if ( selectee ) {
doSelect = ( !event.metaKey && !event.ctrlKey ) ||
var element = $( event.target ).closest( ":data(selectable-item)" );
if ( element.length ) {
var selectee = element.data( "selectable-item" ),
doSelect = ( !event.metaKey && !event.ctrlKey) ||
!selectee.$element.hasClass( "ui-selected" );
that._removeClass( selectee.$element, doSelect ? "ui-unselecting" : "ui-selected" )
._addClass( selectee.$element, doSelect ? "ui-selecting" : "ui-unselecting" );
selectee.unselecting = !doSelect;
selectee.selecting = doSelect;
selectee.selected = doSelect;

// selectable (UN)SELECTING callback
if ( doSelect ) {
that._trigger( "selecting", event, {
selecting: selectee.element
} );
} else {
that._trigger( "unselecting", event, {
unselecting: selectee.element
} );
}
return false;
that._removeClass( selectee.$element, doSelect ? "ui-unselecting" : "ui-selected" )
._addClass( selectee.$element, doSelect ? "ui-selecting" : "ui-unselecting" );
selectee.unselecting = !doSelect;
selectee.selecting = doSelect;
selectee.selected = doSelect;

// selectable (UN)SELECTING callback
if ( doSelect ) {
that._trigger( "selecting", event, {
selecting: selectee.element
});
} else {
that._trigger( "unselecting", event, {
unselecting: selectee.element
});
}
} );
}

},

Expand Down