2010-11-01 38 views
8

Có thể có các thành phần có thể sắp xếp, nhưng vẫn cho phép người dùng sao chép/dán văn bản bên trong các phần tử?Có thể sắp xếp w/Văn bản có thể chọn

<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> 

tôi có thể dễ dàng làm:

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

này sẽ cho phép tôi để chọn văn bản trong trình duyệt và copy/paste nếu tôi muốn. Tuy nhiên, điều này cũng làm cho nó để người đó không thể kéo/thả. Vì vậy, tôi nghĩ rằng những gì tôi muốn là bắt đầu với việc hủy bỏ nhưng nếu con chuột đi một khoảng cách nhất định bên ngoài container, sau đó các phân loại giả không còn bị hủy bỏ. Điều đó có ý nghĩa? Nếu không thể, tùy chọn cuối cùng của tôi là áp dụng trình kích hoạt chuyển đổi vùng chứa giữa có thể sắp xếp và không thể sắp xếp để họ có thể chọn văn bản nhưng tôi muốn giảm thiểu tối đa số lần nhấp chuột.

Trả lời

15

Điều gì về việc đặt văn bản của bạn trong một <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" 
}); 

Hãy thử nó ở đây: http://jsfiddle.net/6uXx8/

+0

Vì vậy, điều này cho phép văn bản có thể lựa chọn, nhưng không thể kéo được. Những gì tôi thích là cho nó có thể được lựa chọn, nhưng nó biến thành draggable sau một khoảng cách nhất định (~ 100px) bên ngoài hộp chứa. – vol7ron

+0

cảm ơn, đây là những gì tôi cần! –

+0

Điều tôi muốn không dễ dàng, vì vậy tôi đoán đây sẽ là câu trả lời hay nhất – vol7ron

1

Thử thêm handle. Ý tưởng là bạn chỉ có thể bắt đầu kéo mục từ tay cầm, ví dụ như biểu tượng bên trong phần tử.

+0

Tôi biết đó là có thể, nhưng tôi muốn toàn bộ nội dung, văn bản bao gồm, để được kéo . Chỉ, tôi muốn nó để văn bản cũng được sao chép/có thể dán. Vì vậy, áp dụng di chuyển khoảng cách min trước khi phần tử trở nên có thể kéo được nếu được nén bằng văn bản. – vol7ron

+0

Bạn muốn rất nhiều;) nhưng nghiêm túc, tôi stronly đề nghị bạn quyết định xem các văn bản có thể lựa chọn hoặc có thể kéo; làm cả hai có vẻ khó xử và người dùng sẽ bị nhầm lẫn IMO. – cambraca

+0

Vâng, đây là điều gì đó tiên tiến hơn một chút, để giảm số lần nhấp chuột. Hiện tại, tôi có một nút khóa/mở khóa để chuyển đổi giữa lớp có thể kéo và không thể kéo được, hoạt động. Chỉ cần cố gắng giảm các nút nhỏ đó và làm mọi thứ tốt hơn. – vol7ron

Các vấn đề liên quan