我正在使用Denis出色的tableDnD jquery插件。
我想允许用户拖放行,但是仅当他们的鼠标在行内的特定td内时才可以。

到目前为止,我已经尝试了两种方法:(请注意var“ tr”包含我正在操作的jquery行元素。td id =“ queue_position”是我尝试为其启用拖动的元素)。

我认为tableDnD仅在启动时检查nodrag类。动态添加或删除nodrop类不会更改任何内容。所以我尝试了两种方法来做我需要做的事情。

尝试之一是深入研究tableDnD内部,并尝试将其称为makeDraggable函数。
尝试二是在添加/删除nodrop类之后重新初始化tableDnD。

在允许的td中,这些方法中的任何一种似乎都可以启用拖动。
离开td时,它们都不能正确禁用拖动。一旦在mouseenter事件中启用了行,它将永远保持启用状态。

我宁愿找到一种无需修改tableDnD即可完成所需工作的方法。

关于如何进行这项工作的任何建议?

$(tr)
  .addClass("nodrag")
  .find("td[id='queue_position']")
//.on("mouseenter",function() {
//    $(tr).removeClass("nodrag");
//    $.tableDnD.makeDraggable(document.getElementById("tableLeft"));
//})
//.on("mouseleave",function() {
//    $(tr).addClass("nodrag");
//    $.tableDnD.makeDraggable(document.getElementById("tableLeft"));
//});

 .on("mouseenter",function() {
      $(tr).removeClass("nodrag");
      $("#tableLeft").tableDnD({onDrop: handleDragDrop});
 })
 .on("mouseleave",function() {
      $(tr).addClass("nodrag");
      $("#tableLeft").tableDnD({onDrop: handleDragDrop});
 });

最佳答案

我(共同维护者)现在完全是偶然地在这里看到了这个问题……在GitHub上项目的问题队列中提出问题时,您应该得到更好的响应。

您是否尝试过dragHandle参见examples: "Identity rows"

我敢肯定,如果您只是为要用作拖动句柄的表cel给出一个类名(class="drag-me-only"),并提供该类名作为配置选项(dragHandle: ".drag-me-only")选项,那么我们将更改光标和所有仅当鼠标悬停在该单元格上时,其他魔术才会跟随套件。

那对你有用吗?

如果您认为我们缺少某些东西,欢迎您提交拉取请求。

10-07 19:52