jQuery Selectable - 通过单击取消选择单个元素 - 这可能吗?

时间:2010-05-31 23:51:06

标签: jquery jquery-ui jquery-ui-selectable

我希望能够通过点击或使用套索取消选择所选项目,就像在Photoshop中我保留另一个键以“取消选择”现有选择的部分。

这可能吗?

据我了解“jQuery UI selectable”。只有“单击”有或没有CTRL才能添加多个然后快速套索。

我试图看看如何通过再次点击它们来取消选择整个选择中的一个或两个元素。

例如,你拖动套索并获得30个元素,但发现1不需要成为此选择的一部分。单击它并取消选择它。

这样可以对现有选择做出反应并删除选择的元素。

或者用套索,你做套索选择。获取30个元素。然后你绘制一个新的套索,这次从已经选择的元素开始,现在默认取消选择,标记的其余部分也是如此。

我认为这应该是jQueryUI的可自定义行为,如果有的话。

但是简单的jQuery hack是否可以“单一取消选择”,还是需要大量的代码呢?

1 个答案:

答案 0 :(得分:0)

似乎我可以并且将需要修改Selectable来自己做这件事。

我在Nicolas Rudas(?)中找到了这个例子:http://nicolas.rudas.info/jquery/selectables_sortables/

$(function() {
        $("#selectable")
            .selectable({
                autoRefresh: false,
                stop: function(e,ui){
                    $(this).selectable( 'refresh');
                },
                noConflict : false
            })
            .sortable({
                opacity:'0.5',
                cursor: 'move',
                zIndex: 5,
                helper : 'clone',
                forcePlaceholderSize : true,
                stop : function(){
                    $("#selectable").selectable( 'refresh');
                }
            })


        $('#noConflict').toggle(function() {
            $(this).text('Disable \'noCoflict\'');
            $("#selectable").selectable('option','noConflict',true).selectable( 'refresh');
        },
        function() {
            $(this).text('Enable \'noCoflict\'');
            $("#selectable").selectable('option','noConflict',false).selectable( 'refresh');


        });

    });

他展示了他如何启用我们正在寻找的功能。他还描述了他解决的一些问题。我现在将更加全面地了解他的代码。

因此,我正在结束这个问题。