剑道可拖动:拖动开始后更改拖动项目
Kendo draggable: change dragged item after dragstart
在我的WebApp中,我使用Kendo ListView,其中每个项目都是可拖动的,以便在Kendo Scheduler中移动事件以注册它们。
ListView中的项目具有以下模板:
<div class="move myDivClass" myOtherAttributes="myOtherAttributes>
<span class="mySpanClass">NUMBER</span>
</div>
我用这个代码制作了Kendo Draggables:
tempList.kendoDraggable({
filter: ".move",
dragstart: function (e) {
//my code
$("#hint").css("margin-left", e.clientX - $(e.initialTarget).offset().left - 20);
},
hint: function (row, event) {
//remove old selection
row.parent().find(".k-state-selected").each(function(){$(this).removeClass("k-state-selected") });
row.addClass("k-state-selected");
var hintElement = row.clone();
hintElement.attr("id", "hint");
hintElement.width(40).height(40);
return hintElement;
}
});
我的问题是,如果我在项目内的数字上按下鼠标按钮拖动项目,当我放在调度程序上时,由于各种原因,它不会被保存。(我花了很长时间才明白这个跨度的问题!)
我甚至想出了某种解决方案,通过在我的KendoDraggables 中添加这种适当性
ignore: "span"
这个解决方案的问题是,如果我在数字上按下鼠标按钮,我会得到一个"纯文本"选择,而不是拖动。这是有道理的,因为我把这个元素排除在可拖拉的东西之外。
因此,为了使这项工作正常进行,我认为我可以做一些事情:
- 用不同的方式写下所说的数字,这样如果我点击数字,它就不会被选中
- 如果在dragstart中,通过检查引用的事件"e",我注意到拖动的元素是一个跨度,请将拖动的元素更改为所述跨度的父元素
但我不知道该怎么做。所以我想问题是:
- 有没有办法把数字写在盒子里,这样它就不会成为目标,但它后面的东西可能仍然是目标
- 如果在dragstart中,我将对初始目标的所有引用都更改为父项,它会起作用吗?有没有一种方法可以系统地做到这一点,而不是寻找包含所述元素的所有字段
哦,该死,刚刚找到了正确的解决方案:)我将简单地删除跨度并将数字直接放在div中。
愚蠢的我。
相关文章:
- 交互.js拖动的项目移动到顶部
- html5拖放确定拖动项目的来源
- 拖动'n将树项目作为文件放到文件夹中
- 无法拖动附加的项目
- Jquery 中的可拖动项目
- 使 HTML5 可拖动项目滚动页面
- 从可放置区域删除可拖动项目时是否存在事件
- 剑道可拖动:拖动开始后更改拖动项目
- 正在Backbone.CollectionView中获取当前拖动项目的索引
- 如何使可拖动项目覆盖在图像上
- Javascript(jQuery)在拖动项目时禁用页面滚动
- 新手,不知道如何使用jQuery在Rails应用程序中保存HTML中可拖动项目的位置
- 约束和可拖动项目没有出现在顶部-版本II
- Javascript d3:是否有一种方法可以通过编程方式停止拖动项目
- 如何捕捉可拖动项目到有限的容器
- 使用Dragula拖放保存拖动项目的位置,React版本(React - Dragula)
- 如何在拖放时获得可拖动项目的相对位置
- 可拖动项目问题
- 在Angularjs中拖动项目时禁用jquery UI拖动
- Html5在表格单元格之间和单元格内拖动项目