Вопрос по javascript, html5, jquery – Как сделать текст выбираемым на перетаскиваемом элементе jQuery?

27

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

Ваш Ответ

2   ответа
11

м же элементе. Однако, если вы продолжаете думать, что это необходимо, мне приходят на ум две вещи:

Solution 1:

Вы можете добавить & quot; обработчик & quot; это будет единственный ребенок, получающий события мыши вниз / вверх, чтобы перетащить div. Например:

<div id="draggable">
  <div class="handler"></div>
  <div class="text">This is a selectable text</div>
</div>

И в вашем коде JavaScript:

var draggableDiv = $('#draggable');
draggableDiv.draggable({
  handle: $('.text', draggableDiv)
});
Solution 2:

Вы можете отключить перетаскиваемую вещь, когда пользователь пытается выделить текст:

<div id="draggable">
  <div class="text">This is a text</div>
</div>

И в вашем коде JavaScript:

var draggableDiv = $('#draggable').draggable();
$('.text', draggableDiv).mousedown(function(ev) {
  draggableDiv.draggable('disable');
}).mouseup(function(ev) {
  draggableDiv.draggable('enable');
});

Когда кто-то пытается выбрать что-то в.textперетаскиваемый процесс отключен.

Первое решение является правильным.

Согласовано. Я не могу удалить свой ответ, хотя, я думаю, @ SamFisher83 должен был бы снять отметку с моего ответа и проверить ответ Лапы.
Решение от @Lapa намного лучше
Простым вариантом использования этого было бы сделать диалоговое окно (div) перетаскиваемым, а затем позволить пользователю выбирать текст внутри встроенного div
57

cancel option когда элемент перетаскивается.

Prevents dragging from starting on specified elements.

$('.selector').draggable({ cancel: '.text' }); 
Это очарование !!!
Grt Solution Man
Это намного лучший ответ для простого факта, что он короче и использует встроенную функциональность.
ты герой!

Похожие вопросы