代码之家  ›  专栏  ›  技术社区  ›  BerggreenDK

jquery可选-单击取消选择单个元素-是否可以?

  •  2
  • BerggreenDK  · 技术社区  · 15 年前

    我希望能够通过单击或使用套索取消选择一个选定的项目,就像在photoshop中,我保存另一个键来“取消选择”现有选择的部分一样。

    这可能吗?

    正如我所理解的“jquery ui可选”。只有“单击”和/或不使用ctrl添加多个套索,然后添加快速套索。

    我正试图通过再次单击一个或两个元素来了解如何取消选择整个选择中的一个或两个元素。

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

    所以一些对现有选择做出反应并删除choosen元素的东西。

    或者用套索,你可以选择套索。获取30个元素。然后你画一个新套索,这次从一个已经选定的元素开始,现在它默认取消选择,标记的组的其余部分也是这样。

    我认为这应该是jqueryui的可定制行为(如果有的话)。

    但是,使用简单的jquery hack“单次取消选择”是可行的还是需要大量的代码?

    1 回复  |  直到 15 年前
        1
  •  0
  •   BerggreenDK    15 年前

    似乎我可以并且将需要修改selectable来自己完成这项工作。

    我已经找到了尼古拉斯·鲁达斯的例子(?): 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');
    
    
            });
    
        });
    

    他展示了他是如何启用我们正在寻找的功能的。他还描述了一些他也解决的问题。现在我将亲自对他的代码进行更深入的研究。

    因此,我要结束这个问题。