我正在使用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"
)选项,那么我们将更改光标和所有仅当鼠标悬停在该单元格上时,其他魔术才会跟随套件。
那对你有用吗?
如果您认为我们缺少某些东西,欢迎您提交拉取请求。