Jquery可选择无需控制

6 javascript jquery jquery-ui jquery-plugins

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

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

Gre*_*reg 5

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

$(".selectable").click(function(e) {
    $(this).toggleClass("selected");
});
Run Code Online (Sandbox Code Playgroud)


Der*_*sed 5

您可以使用一组自定义事件处理程序来控制选择和取消选择的行为。有了这组处理程序,就不会取消选择任何内容,除非选中它,然后再次单击它而不进行范围选择。如果删除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)

虽然持续,但这是一个jsfiddle示例