2013-06-18 9 views
6

Trong JqueryUI có thể sắp xếp, Khi người dùng kéo một mục, hãy thay đổi sự kiện được gọi. Tôi đã nhận được điều này trên ví dụ dưới đây.Vị trí mục Jquery UI có thể sắp xếp trên sự kiện thay đổi

jsFiddle code here

stop: function(event, ui) { 
     console.log("New position: " + ui.item.index()); 
    }, 
    change: function(event, ui) { 
     // When the item postion is changed while dragging a item, I want it's position 
     console.log("New position: " + ui.item.index()); 
    } 

Trong mã của tôi Khi người dùng kéo một mục (Item7) và thay đổi vị trí, trong khi kéo một mục và thay đổi vị trí. Tôi muốn lấy vị trí của một mục kéo.

Tôi chỉ thấy một câu trả lời ở đây: jQuery UI Sortable Position

Trong liên kết ở trên, giá trị vị trí (ui.item.index()) được truy cập trên Dừng chức năng, khi kéo một mục, tôi muốn vị trí của nó (về chức năng thay đổi)? Bất kỳ ý tưởng ?

Tôi cần điều này vì khi người dùng cố gắng đặt mục 7 sau mục 2, tôi sẽ thực hiện xác thực các giá trị từ Item2 trước đó (Nếu tôi biết vị trí hiện tại của mục kéo, Sau đó chỉ tôi mới có thể truy cập mục trước đó). Nếu xác nhận thành công, nó có thể được đặt hoặc tôi phải hiển thị một số tin nhắn.

+0

[Câu hỏi và câu trả lời ở đây] (http://stackoverflow.com/questions/8148145/drag-event-for-jquery-ui-sortable) dường như có mức sử dụng cao đối với bạn. – Ohgodwhy

Trả lời

7

Nếu bạn muốn lấy chỉ mục của những gì hiện đang lơ lửng, hãy thử sử dụng placeholder.

change: function(event, ui) { 
     console.log("New position: " + ui.placeholder.index()); 
} 

FIDDLE

0

câu trả lời Jude Duran sẽ không hoạt động liên tục (mặt hàng này ra sau taring tóc của tôi ra). Mục giữ chỗ của mục đầu tiên và cuối cùng sẽ phụ thuộc vào vị trí của chuột.

function getPaceholderIndex(ui) { 
    var clone = $(myMenu).clone(); 
    $('.ui-sortable-helper', clone).remove(); 
    return $('.ghost', clone).index(); 
} 

sẽ hoạt động hiệu quả hơn vì trước tiên, xóa mục thực tế và rời khỏi trình giữ chỗ. Lưu ý rằng tôi đã đặt 'ghost' làm tham số giữ chỗ.