Jquery可选择无需控制

我使用Jquery Selectable但是用户必须按住控制按钮以选择项目,无论如何用户可以选择多个项目而无需按住控制按钮?

换句话说:我希望用户能够通过单击选择任何项目,然后再次单击取消选中。

您可以在用户单击元素时添加“已选择”类,并在再次单击时删除该类。

$(".selectable").click(function(e) { $(this).toggleClass("selected"); }); 

您可以使用一组自定义事件处理程序来控制选择和取消选择的行为方式。 使用这组处理程序,除非选择它并再次单击它而不进行范围选择,否则不会取消选择任何处理程序。 如果删除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 = []; } }); }); 

虽然它持续,但这是一个jsfiddle的例子 。

您也可以使用鼠标左键并向下拖动以选择多个项目。 但是,只能选择相邻的项目。

最简单的方法是实现一个jQuery单击处理程序,它可以切换可选元素上的selected类。 然后恰当selected样式。 在您的情况下,jQuery Selectable比帮助更具障碍。