【发布时间】:2011-10-14 10:58:42
【问题描述】:
我有一个用户可以拖动的 div,在该 div 内是一个跨度,其中包含一些我希望允许用户选择的文本(因此他们不能拖动它)。如何允许 div 拖动,但不允许 span?
dragstart 事件在 div 上。
我可能忽略了一些简单的事情。我在 div 上尝试了 draggable=true,在跨度上尝试了 draggable=false。那没有用。尝试在 dragstart 上返回 false,但也没有用。
dragstart(大致):
var jTarget = $(e.target);
if ((jTarget.is('div.header') || (jTarget.parents('div.header'))
&& !jTarget.is('a, input, span')))
{
e.originalEvent.dataTransfer.setData("Text", "test");
}
else
{
if(e.preventBubble)
e.preventBubble();
if(e.stopPropagation)
e.stopPropagation();
return false;//???
}
if else 部分按我的预期工作,但我无法停止拖动并允许选择。
【问题讨论】:
-
不要认为这是可能的 - 尽管您可以通过在 div 中提供拖动事件可以附加到的拖动句柄来解决它,从而使内部文本可选择。无法区分单击/拖动以移动和单击/拖动以突出显示。它们都只是鼠标按下,然后是鼠标移动。
-
您的
dragstart处理程序中有什么代码?请将其添加到您的问题中。 -
@Marc B - 我开始认为我可能不得不这样做。虽然它不是最佳的,因为我的跨度可能占用 1.5 行,我希望其他 0.5 行是可拖动的。那将是相当困难的。而且,这个对象是标题对象,因此添加另一个标题用于拖动目的是不可能的。
标签: javascript html drag-and-drop