【问题标题】:Trying to set sortable element to be disabled尝试将可排序元素设置为禁用
【发布时间】:2019-01-10 09:38:43
【问题描述】:

我正在使用 jQuery Sortable 对列表项进行排序。但是,我已将某些 li 元素设置为禁用类名称,以禁用该特定项目的排序。 我还将该类添加到 jquery 代码中以禁用,但它仍然允许重新排列这些项目

我查看了各种消息来源,这些消息来源说只需在选择器上使用启用/禁用,但似乎不起作用 我已经搜索过,也在这里查看过http://api.jqueryui.com/sortable/#method-option

 <script>
 $( function() {
 $( "#sortable" ).sortable();
 $( "#sortable" ).disableSelection();
 $(".notsortable").sortable("disable");
 } );
 </script>
 <ul id="sortable">
 <li class="ui-state-default notsortable">
  <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #1</li>
 <li class="ui-state-default">
 <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #2</li>
 <li class="ui-state-default">
   <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #3</li>
  <li class="ui-state-default">
    <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #4</li>
  <li class="ui-state-default">
   <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #5</li>
   <li class="ui-state-default">
    <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #6</li>
    <li class="ui-state-default">
    <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #7</li>
     </ul>

不应允许移动列表项,但事实并非如此

【问题讨论】:

    标签: javascript jquery jquery-ui-sortable


    【解决方案1】:

    尝试这样做:

    $(function() {
      $("#sortable").sortable({
        cancel: ".ui-state-disabled",
        items: "li:not(.ui-state-disabled)"
      })
    });
    .ui-state-disabled {
      opacity: 1 !important;
      pointer-events: auto !important;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" />
    <ul id="sortable">
      <li class="ui-state-disabled">
        <span class="ui-icon ui-icon-arrowthick-2-n-s"></span><a href="https://www.google.com/">Test</a>
      </li>
      <li class="ui-state-default">
        <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #2
      </li>
      <li class="ui-state-default">
        <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #3
      </li>
      <li class="ui-state-default">
        <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #4
      </li>
      <li class="ui-state-default">
        <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #5
      </li>
      <li class="ui-state-default">
        <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #6
      </li>
      <li class="ui-state-default">
        <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #7
      </li>
    </ul>

    【讨论】:

    • 这似乎可以解决问题 没想到它会使项目本身无法选择,因为我正计划将订单 # 设置为指向面板的链接,单击该面板将显示订单信息
    • @ChrisYates 更新了代码,您可以使用 2 行 CSS 使其可点击 :-)
    • 出于好奇,我已经搜索过但找不到任何关于此的内容。我不认为它可以仅将某些项目向上移动而不是向下移动?
    • @ChrisYates 不幸的是,这是不可能的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多