编辑拖放UL / LI内的输入

时间:2011-12-09 18:06:03

标签: javascript

我知道这是一个相当具体的问题,但我会去...

我正在使用Orangoo的工具来制作可排序列表。表格工作正常。看他的例子: http://orangoo.com/AJS/examples/sortable_list.html

但是,如果我想添加输入或其他表单元素,我无法单击输入。鼠标会在那里停留一秒然后消失,因为ondrag事件处理的东西正在接管。

我不想从LI中删除拖动事件,因为我想重新排序输入元素。相反,如果我点击一个输入,我想要一种方法来保持焦点或忽略ondrag处理。我无法弄清楚如何覆盖ondrag事件。如果有人能够提供帮助,我将非常感激!

2 个答案:

答案 0 :(得分:2)

当用户点击输入时,您需要阻止事件被触发以进行拖放操作。只需处理mousedown事件并使用event.stopPropagation()。

示例:

document.getElementById("input1").onmousedown = (function(e) {
    e.stopPropagation();
});

答案 1 :(得分:0)

感谢您的回答!我最终放弃了,只是关闭了事件处理程序。

    <input id="inputId" name="inputName" value="some value" onmousedown="AJS.dnd.removeDragAble(this.parentNode);" onblur="AJS.AEV(this.parentNode, 'mousedown', this.parentNode._start_fn);" />