【问题标题】:How to select multiple items using mouse click?如何使用鼠标单击选择多个项目?
【发布时间】:2012-08-14 18:01:10
【问题描述】:

这是默认的 jQueryUI 显示为网格布局 (demo here)。使用鼠标指针时,我可以一次选择一个。我必须使用 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 -->

【问题讨论】:

  • 显示.selectable();的jQueryui源代码
  • 我不明白你在说什么?你能给我使用jsfiddle.net的代码
  • 既然你了解 jsFiddle,最好把代码放在那里给大家 ;-)
  • "如何只使用鼠标指针一次编辑多个选择的代码?"
  • 有人知道怎么做吗?我认为这不是大代码

标签: javascript jquery css jquery-ui


【解决方案1】:

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

Multiple Select With Ctrl

【讨论】:

【解决方案2】:

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

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

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

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); 
    }
});

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 是的。我想在给定的演示中使用这个选择功能。怎么做?
    • 实际上这并不像您看起来那么容易。 JQueryUI lib 方法应该重新制作。
    • @Samitha,从 Kakarott 盗取并更改为更新版本的 jquery =) jsfiddle.net/ZfevM/100
    • 让我猜猜发生了什么变化……没什么!!
    • @kakarott,实际上有一些改变使它对我有用。不要生气,所有学分,因为正确的答案应该是你的;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    相关资源
    最近更新 更多