【发布时间】:2014-01-22 05:03:54
【问题描述】:
这应该是一个简单的问题
所以,我有一个非常简单的 kendoDraggable:
grid.kendoDraggable({
. . .
axis: "y",
hint: getHint,
drag: drag,
dragend: dragend,
dragstart: dragstart,
});
我需要在“拖动”处理程序中测试我的条件,并在条件为真时防止拖动(因此不可能超出某些动态计算的边界)。 但是如果用户没有释放鼠标,即使他试图拖动超出该边界,用户也应该能够将其拖动到另一个方向。
如果我试图阻止事件的传播,它不起作用:
function drag(e) {
if (e.clientY < someDynamicValue) {
e.preventDefault();
e.stopImmediatePropagation();
e.stopPropagation();
return false;
}
但是,如果我只是抛出任何异常,它就会完全按照我想要的方式工作。条件为真不拖,条件为假时拖:
function drag(e) {
if (e.clientY < someDynamicValue) {
throw "any exception";
}
发生了什么事?如果条件为真,如何真正停止拖动?
谢谢!
附:我知道限制可拖动对象的“容器”kendoDraggable 属性,但它在滚动时效果不佳。
【问题讨论】:
标签: javascript jquery events drag-and-drop kendo-ui