6 javascript jquery jquery-ui jquery-plugins
我使用Jquery Selectable但是用户必须按住控制按钮才能选择项目,无论如何用户可以选择多个项目而无需按住控制按钮?
换句话说:我希望用户能够通过单击选择任何项目,然后再次单击取消选中.
您可以在用户单击元素时添加"已选择"类,并在再次单击时删除该类.
$(".selectable").click(function(e) {
$(this).toggleClass("selected");
});
Run Code Online (Sandbox Code Playgroud)
您可以使用一组自定义事件处理程序来控制选择和取消选择的行为。有了这组处理程序,就不会取消选择任何内容,除非选中它,然后再次单击它而不进行范围选择。如果删除if (event.detail == 0) {
和及其相关的语句,则范围选择的作用类似于范围反转-选定范围内的任何内容都将被取消选择,反之亦然。
var _selectRange = false, _deselectQueue = [];
$(function() {
$( "#selectable" ).selectable({
selecting: function (event, ui) {
if (event.detail == 0) {
_selectRange = true;
return true;
}
if ($(ui.selecting).hasClass('ui-selected')) {
_deselectQueue.push(ui.selecting);
}
},
unselecting: function (event, ui) {
$(ui.unselecting).addClass('ui-selected');
},
stop: function () {
if (!_selectRange) {
$.each(_deselectQueue, function (ix, de) {
$(de)
.removeClass('ui-selecting')
.removeClass('ui-selected');
});
}
_selectRange = false;
_deselectQueue = [];
}
});
});
Run Code Online (Sandbox Code Playgroud)