![](/img/trans.png)
[英]jQuery Draggable - Create draggable and start dragging on html5 native Drag And Drop api event
[英]Kendo draggable - suspend dragging temporarily from drag event handler
這應該是一個簡單的問題
因此,我有一個非常簡單的kendoDraggable:
grid.kendoDraggable({
. . .
axis: "y",
hint: getHint,
drag: drag,
dragend: dragend,
dragstart: dragstart,
});
我需要在“拖動”處理程序中測試我的條件,並在條件為true時防止拖動(因此不可能超出某些動態計算的邊界)。 但是,即使用戶未嘗試將鼠標拖到該邊框之外,也沒有釋放鼠標,仍應能夠將其拖到另一個方向。
如果我試圖停止事件的傳播,那么它將不起作用:
function drag(e) {
if (e.clientY < someDynamicValue) {
e.preventDefault();
e.stopImmediatePropagation();
e.stopPropagation();
return false;
}
但是,如果我只是拋出任何異常,它的工作方式將完全符合我的期望。 如果條件為true,則不拖動,但如果條件為false,則拖動:
function drag(e) {
if (e.clientY < someDynamicValue) {
throw "any exception";
}
這是怎么回事? 如果條件為真,如何真正停止拖動?
謝謝!
PS我知道關於“容器”的kendoDraggable屬性,該屬性限制了可拖動對象,但是在滾動時效果不佳。
約束拖放操作的最佳方法是使用Jquery選擇器進行過濾。 為了動態地限制移動,您可以異步地從html元素添加/刪除類。 在以下示例中,用戶只能在網格行上拖動,而不能在正在編輯的當前單元格上拖動。 希望這可以幫助!
$("tbody").kendoDraggable({
container: $("#Goals"),
filter: "tr td:not(.k-edit-cell)",
hint: (item) => this.dragHint(item),
drag: (e) => this.dragging(e)
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.