4

这是默认的 jQueryUI 显示为网格布局(这里是演示)。使用鼠标指针时,我可以一次选择一个。我必须Ctrl用于多项选择。如何仅使用鼠标指针一次编辑多个选择的代码?

CSS

<style>
    #feedback { font-size: 1.4em; }
    #selectable .ui-selecting { background: #FECA40; }
    #selectable .ui-selected { background: #F39814; color: white; }
    #selectable { list-style-type: none; margin: 0; padding: 0; }
    #selectable li { margin: 3px; padding: 1px; float: left; width: 100px; height: 80px; font-size: 4em; text-align: center; }
</style>

JavaScript

<script>
    $(function() {
        $( "#selectable" ).selectable();
    });
</script>     

HTML

 <div class="demo"> 
   <ol id="selectable">
     <li class="ui-state-default">1</li>
     <li class="ui-state-default">2</li>
     <li class="ui-state-default">3</li>
     <li class="ui-state-default">4</li>
     <li class="ui-state-default">5</li>
     <li class="ui-state-default">6</li>
     <li class="ui-state-default">7</li>
     <li class="ui-state-default">8</li>
     <li class="ui-state-default">9</li>
     <li class="ui-state-default">10</li>
     <li class="ui-state-default">11</li>
     <li class="ui-state-default">12</li>
   </ol>
 </div><!-- End demo -->
 
 <div class="demo-description">
   <p>To arrange selectable items as a grid, give them identical dimensions and float them using CSS.</p>
 </div><!-- End demo-description -->
4

3 回答 3

8

在线找到此代码。那是你要求的吗?

使用 Ctrl 进行多选

于 2012-08-18T16:53:21.440 回答
2

老实说,Ctrl用于选择多个项目的 + 左键单击是非常标准的 UI 行为,并且内置于jQueryUI Selectable中。您是否还知道您可以左键单击并将焦点拖动到多个项目上以选择它们?

但是,我可以看到提供相关行为的优势,那么如何使用左键单击或拖动来选择,然后左键单击并拖动以取消选择

这可能不是最有效的方法,但在玩过内置回调之后,我想出了一些似乎可行的方法。根据您问题中的代码,我已连接到内置回调函数以存储选择的内容并处理选择删除。JavaScript 在下面重复,但在此处演示

JavaScript

var $currentlySelected = null;
var selected = [];

$('#selectable').selectable({
    start: function(event, ui) {
        $currentlySelected = $('#selectable .ui-selected');
    },
    stop: function(event, ui) {
        for (var i = 0; i < selected.length; i++) {
            if ($.inArray(selected[i], $currentlySelected) >= 0) {
              $(selected[i]).removeClass('ui-selected');
            }
        }
        selected = [];
    },
    selecting: function(event, ui) {
        $currentlySelected.addClass('ui-selected'); // re-apply ui-selected class to currently selected items
    },
    selected: function(event, ui) {
        selected.push(ui.selected); 
    }
});
于 2012-08-18T20:54:18.657 回答
1

http://jqueryui.com/demos/button/#checkbox 看起来像你要找的东西

于 2012-08-18T17:09:22.013 回答