javascript - jQuery UI 可排序行为不直观 - 难以上下移动

标签 javascript jquery html jquery-ui jquery-ui-sortable

正如您在 this JSFiddle 中看到的那样,您必须将项目拖动到右侧才能上下移动。

我希望用户能够直接上下移动项目,甚至左右移动项目。显然,仅仅为了重新排序而必须向右拖动是不直观的垂直。

箭头图标是 handle ,您必须单击并拖动该部分才能移动项目。

HTML:

<body class="container">
  <div class="form-group">
    <label class="control-label col-md-2">Testeroo</label>
    <div class="col-md-10">
      <ul class="sortable fa-ul">
        <li>
          <i class="fa-li fas fa-arrows-alt-v fa-lg"></i>
          <input value="One" />
          <input value="Two" />
        </li>
        <li>
          <i class="fa-li fas fa-arrows-alt-v fa-lg"></i>
          <input value="One" />
          <input value="Two" />
        </li>
      </ul>
    </div>
  </div>
</body>

JS:

$(".sortable").sortable({ handle: "i.fa-li" });

使用 Font Awesome 中的图标,这就是 fa* 类。我也在使用 Bootstrap,如果它有什么区别的话,它也在 Fiddle 中。

最佳答案

这是由于您的句柄 i.fa-li 不在 ul 的边界内造成的。如果您在 ul 元素上放置 background-color,您将看到 handle 位于外部,因此您的鼠标不会进入可排序区域,直到您拖动到对。

您需要调整 CSS,使句柄位于 ul 区域内才能启动,但它不会执行此操作。

为了演示,我将 fa-li 元素移回到右侧,并填充了其余的 li 元素以使用 来解释它;。这是一个 hack,但它表明它可以被修复:

https://jsfiddle.net/2w0Lq3to/2/

这里有一个使用 CSS 和 .pad 元素的更好修复方法:

https://jsfiddle.net/2w0Lq3to/3/

关于javascript - jQuery UI 可排序行为不直观 - 难以上下移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47933871/

相关文章:

javascript - 对于 Greasemonkey 中的这个 jQuery 示例,为什么会触发 alert() 但不会触发 console.log()?

javascript - jQuery 获取隐藏输入的值

javascript - 单击时切换文本内容。出于某种原因需要点击 2 次?

javascript - 不能将自定义宽度与 Angular-Slick 一起使用

html - 如何在图像选定区域的文本上添加鼠标?

javascript - 如何使 Chrome 扩展具有粘性?

javascript - 使用其原型(prototype)之一初始化 JS 对象

javascript - .net 的通量模式

javascript - 在 Shaka Player 中更改字幕的文本大小

javascript - 有没有一种方法可以找到时间序列中超过 X% 时间的 Y 值?