Выбор Jquery без контроля удержания - PullRequest
6 голосов
/ 15 февраля 2011

Я использую Jquery Selectable Но пользователь должен удерживать нажатой кнопку управления, чтобы выбрать элементы, есть ли возможность выбрать несколько элементов, не удерживая нажатой кнопку управления?слова: я хочу, чтобы пользователь мог выбрать любой элемент, нажав на него, и отменить выбор, нажав еще раз.

Ответы [ 4 ]

5 голосов
/ 15 февраля 2011

Вы можете добавить класс «selected», когда пользователь щелкает элементы, и просто удалять класс при повторном нажатии.

$(".selectable").click(function(e) {
    $(this).toggleClass("selected");
});
4 голосов
/ 25 октября 2011

Вы можете использовать набор пользовательских обработчиков событий для управления поведением выделения и отмены выбора.С этим набором обработчиков ничего не отменяется, если только он не выбран, и вы щелкаете по нему снова, не делая выбора диапазона.Если вы удалите 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 .

0 голосов
/ 15 февраля 2011

Самое простое - реализовать обработчик кликов jQuery, который переключает класс selected на выбираемые элементы. Тогда просто стиль selected соответственно. jQuery Selectable - это больше помеха, чем помощь в вашем случае.

0 голосов
/ 15 февраля 2011

Вы также можете использовать левую кнопку мыши и перетащить ее вниз, чтобы выбрать несколько элементов. Но только соседние элементы могут быть выбраны этим.

...