Dragula JS通过点击事件从一个列表移动到另一个列表

2024-03-20

我使用 Dragula JS 进行拖放功能,并且我还希望可以选择通过单击鼠标来来回移动列表中的元素,而不会失去拖放功能。我该如何实现这一点?

所以我单击元素 1,它将移动到列表中。 我从该列表中将其单击回来,它就会向后移动。 就是这个想法。

如果有帮助的话,我准备了一个基本的拖放小提琴。http://jsfiddle.net/vf6dnwxj/10/ http://jsfiddle.net/vf6dnwxj/10/

我在上面的小提琴中的结构:

<div class="wrapper panel panel-body">
<ul id="left1" class="cont-dragula">

</ul>
<ul id="right1" class="cont-dragula">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3.</li>
    <li>Item 4.</li>
    <li>Item 5.</li>
    <li>Item 6.</li>
</ul>
</div>

JS:

dragula([left1, right1]);

好吧,拖古拉并没有做任何特别的事情,它只是移动物品。所以你可以简单地自己移动它们:

var leftList = document.querySelector('#left1');
var rightList = document.querySelector('#right1');
var list = document.querySelectorAll('#right1 li, #left1 li');
for (var i = 0; i < list.length; i++) {
  list[i].addEventListener('click', function(){
        if (this.parentNode.id == 'right1') {
        leftList.appendChild(this);
      } else {
        rightList.appendChild(this);
      }
  });
}

演示小提琴 http://jsfiddle.net/vf6dnwxj/11/

如果您希望在操作 DOM 之前触发 Dragulas 回调,请添加drake.start(this)并在操纵后drake.end():

drake = dragula([left1, right1]);
drake.on('drop', function(el, target, source, sibling){
console.log(el);
console.log(target);
console.log(source);
console.log(sibling);
});
var leftList = document.querySelector('#left1');
var rightList = document.querySelector('#right1');
var list = document.querySelectorAll('#right1 li, #left1 li');
for (var i = 0; i < list.length; i++) {
  list[i].addEventListener('click', function(){
            drake.start(this);
        if (this.parentNode.id == 'right1') {
        leftList.appendChild(this);
      } else {
        rightList.appendChild(this);
      }
      drake.end();
  });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dragula JS通过点击事件从一个列表移动到另一个列表 的相关文章

随机推荐

  • 从不同域加载 jQuery Mobile 页面?

    有没有办法从外部页面加载启用 jQuery AJAX 的页面 我正在制作一个带有phonegap的应用程序 我需要在线托管一个页面 因为它将不断更新 但我似乎不知道如何 我尝试只是链接它 但没有用 有任何想法吗 由于您正在使用 PhoneG
  • 如何在 ASP.NET MVC 控制器中获取身份密码选项

    我想阅读身份PasswordOptions配置在Startup cs从 MVCController My PasswordOptions配置如下 services AddIdentity
  • c#:动作无与伦比?

    我正在尝试比较两个操作 与 的比较总是返回 false 就像 Equals 方法一样 即使它是同一个实例 我的问题是 这真的不可能还是我做错了 干杯 交流电 你做错了 如果我相信你 当你说 即使它是同一个实例 时 那么以下代码通过执行LIN
  • 我可以通过编程方式推导出 C++ dll 使用的调用约定吗?

    想象一下 您想要编写一个程序来测试 c dll 文件中的函数 您应该允许用户选择一个 dll 我们假设我们正在讨论 c dll 他应该能够获得 dll 导出的所有函数的列表 然后 用户应该能够从列表中选择一个函数名称 手动输入参数列表 参数
  • conda:从基本/根环境中删除所有已安装的软件包

    TL DR 如何删除所有已安装的软件包base 我在我的计算机中安装了一堆机器学习包base康达环境 我现在创建了一个ml机器学习环境 并希望重置我的base环境 删除安装在那里的所有软件包 我试过了 activate base conda
  • 实现 Serialized 接口的 Java 类

    我需要一个实现可序列化的类的列表 您还能告诉我什么样的类实现了该接口吗 在Java API中 大多数类都实现了Serialized here http java sun com javase 6 docs api java io class
  • 为文本添加背景颜色,但段落行之间留有空格

    我想知道 CSS 是否可以做一些事情 基本上我想使用 html css 在图像的 RHS 上重新创建文本 但目前我正在获取图像的 LHS HTML div div p This is an example of what I have p
  • 如何在php中编写json文件作为数据源?

    我有一些这样的数据 name abc adr bcd partners 101 name xyz com prices 1001 description Single Room amount 125 from 2012 10 12
  • 在不同条件下更新sequelize中的多行

    我正在尝试对 postgres 数据库中的行执行带有sequelize 的更新命令 我需要能够使用相同的值更新具有不同条件的多行 例如 假设我有一个包含以下字段的用户表 ID 名 姓 Gender Location 创建于 假设 我在此表中
  • rstudio - 是否可以在后台运行代码

    关于 RStudio 的问题 假设我在控制台中运行代码 gt code1 假使 假设code1 在控制台上不打印任何内容 但是code1 以上需要一个小时才能完成 我想在等待的同时做点别的事code1 是否可以 有没有类似的函数runInB
  • 为什么我会收到“找不到所请求的资源”。当访问简单的喷涂路线时?

    我尝试了一个简单的喷雾示例应用程序 但无法访问路线 我将示例源代码上传到了 github 但该示例源代码不起作用 喷雾 Tomcat 示例 https github com avidanyum spray tomcat example gi
  • 左排除加入续集

    我有两张表 其中一张表有另一张表的 ID 1 1 关系 所以像 EventFeedback somePrimaryKey userEventID UserEvent userEventID Sequelize 的关系定义为 models U
  • 在 Windows 10 上无法查看 Robomongo 中的集合

    我在互联网上彻底搜索但几乎找不到任何东西 我已经在 Windows 10 上安装了 MongoDB 3 2 0 和 Robomongo 0 8 5 安装后我能够成功启动 MongoDB 作为服务 之后 我在成功运行的 DBRestore e
  • Javascript 中两个字符串之间的网络效率差异

    我有一个网络应用程序 其中客户端编辑器正在编辑服务器端已知的非常大的文本 客户可以对此文本进行任何类型的修改 什么是最网络效率高如何以服务器理解的方式传输结果差异 另外 由于这将发生在客户端 Javascript 我也希望它 快 或者至少不
  • 无法从 Firebase 上的存储引用获取 URI

    我正在尝试获取存储在 Firebase 存储中的图像 URI 以便使用另一种方法对其进行处理 我正在使用以下内容 FirebaseStorage storage FirebaseStorage getInstance StorageRefe
  • 并行运行子进程

    我有一个 python 脚本 它必须调用某个应用程序 3 次 这些调用应该是并行的 因为它们需要几个小时才能完成并且彼此不依赖 但他们的脚本应该停止 直到所有脚本都完成 然后做一些清理工作 这是一些代码 do some stuff for
  • 重新安装 Android studio 会导致我的 Google Maps API 无法在我的应用程序中显示吗?

    我创建了一个利用 Google Maps API 的应用程序 我总是通过将其副本保存在外部驱动器上来备份我的应用程序 我最近重新安装了 Windows 并且不得不重新安装 Android Studio 当我导入保存的应用程序项目并运行它时
  • jQuery 禁用链接直到页面加载

    我有一个附加到链接的 jquery 弹出窗口 如果单击链接时页面未完全加载 即 js 文件 它将在浏览器窗口中打开 而不是弹出窗口 我正在考虑禁用 隐藏链接 直到加载页面 处理这种情况的最佳实践是什么 您有任何代码示例吗 首先将链接放在 d
  • 如何动态添加新值以选择 jira 中的列表字段或使用插件

    这是我的用例 1 我有一个 客户名称 文本字段和 所有客户 单选列表 2 问题解决后 我想选择 客户名称 中存在的值 并希望添加到 所有客户 中 如果要添加的值已存在于 所有客户 中 我就能够实现此目标 但我想用新值填充 所有客户 字段 如
  • Dragula JS通过点击事件从一个列表移动到另一个列表

    我使用 Dragula JS 进行拖放功能 并且我还希望可以选择通过单击鼠标来来回移动列表中的元素 而不会失去拖放功能 我该如何实现这一点 所以我单击元素 1 它将移动到列表中 我从该列表中将其单击回来 它就会向后移动 就是这个想法 如果有