Kendo draggable:在dragstart之后更改拖动的项目

时间:2015-11-27 16:56:41

标签: javascript jquery html kendo-ui draggable

在我的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"

这个解决方案的问题是,如果我在数字上方按下鼠标按钮,我将得到一个&#34;纯文本&#34;选择,而不是拖累。 这是有道理的,因为我从draggables中排除了那个元素。

所以,为了使这项工作正常,我认为我可以做一些事情:

  • 以不同的方式写下这个号码,这样如果我点击号码就不会被选中
  • 如果在dragstart内部,通过检查引用的事件&#34; e&#34;,我注意到拖动的元素是一个范围,将拖动的元素更改为所述范围的父级

但我不知道这样做。所以我想问题是:

  • 有没有办法在该框内写下数字,以便它不会成为目标,但它背后的内容可能仍然是目标?
  • 如果在dragstart中我将所有对初始目标的引用更改为父项,它会起作用吗?有没有办法系统地执行此操作而不是查找包含所述元素的所有字段?

1 个答案:

答案 0 :(得分:0)

哦该死的,刚刚找到合适的解决方案:) 我将简单地删除跨度并将数字直接放在div中。

愚蠢的我。