首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有保持控制的Jquery Selectable

没有保持控制的Jquery Selectable
EN

Stack Overflow用户
提问于 2011-02-15 12:10:10
回答 4查看 4.9K关注 0票数 7

我使用Jquery Selectable ,但是用户必须按住can按钮才能选择项目,用户可以在不按住can按钮的情况下选择多个项目吗?

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-15 16:26:40

您可以在用户单击元素时添加"selected“类,并在再次单击时简单地删除该类。

代码语言:javascript
复制
$(".selectable").click(function(e) {
    $(this).toggleClass("selected");
});
票数 6
EN

Stack Overflow用户

发布于 2011-10-26 01:33:59

可以使用一组自定义事件处理程序来控制选择和取消选择的行为方式。有了这组处理程序,任何东西都不会被取消选择,除非它被选中,然后再次单击它,而不进行范围选择。如果删除if (event.detail == 0) {及其相关语句,则range select的行为将类似于range invert --所选范围中的任何内容都将被取消选择,反之亦然。

代码语言:javascript
复制
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 = [];
        }
    });
});

While it lasts, here's a jsfiddle example

票数 7
EN

Stack Overflow用户

发布于 2011-02-15 12:16:20

也可以使用鼠标左键向下拖动以选择多个项目。但是只有相邻的项目才能被选中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4999789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档