Как предотвратить перетаскивание дочернего элемента, но разрешить перетаскивание родительского элемента?

У меня есть div, который пользователь может перетащить, внутри этого div есть диапазон с некоторым текстом, который я хочу позволить пользователю выбрать (таким образом, они не могут его перетащить). Как разрешить перетаскивать div, но не диапазон?

Событие dragstart находится в div.

Я, вероятно, упускаю из виду что-то простое. Я пробовал draggable = true для div и draggable = false на span. Это не сработало. Пытался вернуть 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 работает так, как я ожидал, но я не могу ничего остановить, чтобы остановить перетаскивание и разрешить выбор.

11
задан aepheus 27 July 2011 в 18:28
поделиться