Сортируемый с выбираемым текстом - PullRequest
9 голосов
/ 01 ноября 2010

Можно ли иметь возможность сортировки элементов, но при этом позволить пользователям копировать / вставлять текст внутри элементов?

<div class="sortable">
   <div class="pseudo-sortable">Foo</div>
   <div class="pseudo-sortable">Bar</div>
   <div>other stuff that i don't care if a user 
        can't copy (maybe images or buttoms)</div>
</div>

Я могу легко сделать:

$('.sortable').sortable({cancel: '.pseudo-sortable'});

Это позволит мне выбрать текст в браузере и скопировать / вставить, если я хочу.Тем не менее, это также делает его так, что человек не может перетаскивать.Поэтому я думаю, что мне хотелось бы начать с отмены, но если мышь выходит на некоторое расстояние вне контейнера, то псевдосортируемые элементы больше не отменяются.Имеет ли это смысл?

Если это невозможно, моим последним вариантом будет применение триггера, который переключает контейнеры между сортируемыми и несортируемыми, чтобы они могли выбирать текст, но я бы предпочел свести к минимумупользовательский интерфейс щелкает.

Ответы [ 2 ]

18 голосов
/ 12 ноября 2010

Как насчет размещения вашего текста в <span>?

HTML

<ul id="sortable">
    <li><span>Item 1</span></li>
    <li><span>Item 2</span></li>
    <li><span>Item 3</span></li>
    <li><span>Item 4</span></li>
    <li><span>Item 5</span></li>
    <li><span>Item 6</span></li>
    <li><span>Item 7</span></li>
</ul>

JQuery

$("#sortable").sortable({
    revert: true,
    cancel: "#sortable li span"
});

Попробуйте здесь: http://jsfiddle.net/6uXx8/

1 голос
/ 12 ноября 2010

Попробуйте добавить маркер .Идея состоит в том, что вы можете начать перетаскивать элемент только из маркера, которым может быть, например, значок внутри элемента.

...