2012-03-31 29 views
8

Tôi đang tìm cách kích hoạt sự kiện từ trạng thái hoàn nguyên nếu một cái gì đó không xác thực, ví dụ như nếu phần tử tồn tại, nó sẽ tạo nó từ danh sách khác, nhưng nếu nó đã tồn tại, nó sẽ chuyển sang phần tử khác và trả về phần tử vị trí ban đầu của nó:Làm thế nào để đặt jquery-ui có thể kéo trở lại thành true nếu sau khi xác thực tôi quyết định di chuyển phần tử trở lại?

$("#catalog ul").droppable({ 
     tolerance: 'fit', 
     activeClass: "ui-state-default", 
     hoverClass: "ui-state-hover", 
     accept: ":not(.ui-sortable-helper)", 
     drop: function(event, ui) { 
      //check if already exists 
      if($(this).find("#"+$(ui.draggable).attr("id")).length==0){ 
       $("<li id="+$(ui.draggable).attr("id")+"></li>").text(ui.draggable.text()).appendTo(this) 
       .draggable({ 
        revert: 'invalid', 
        stop: function(){ 
         $(this).draggable('option','revert','invalid'); 
        } 
       }).droppable({ 
        greedy: true, 
        tolerance: 'touch', 
        drop: function(event,ui){ 
         ui.draggable.draggable('option','revert',true); 
        } 
       }); 
      }else{ 
       //want to make the object go back by setting true to revert 
       return false; 
      } 
     } 
    }) 
+1

Nevermind, tôi đã tìm thấy nó sau khi xem xét toàn bộ mã tôi chỉ cần đặt ui.draggable.draggable ('option', 'revert', true) vào bên kia. Wow đã cố gắng này gần một ngày, lol. Chỉ trả lời câu hỏi của riêng tôi nếu ai đó chú ý như tôi và gặp vấn đề tương tự. – kenji

+0

kenji, cách chính xác để trả lời câu hỏi của bạn (hoàn toàn tốt trên SO!) Là làm theo nghĩa đen: Đăng câu trả lời dưới đây, sau đó hai ngày (SO làm bạn đợi), làm cho câu trả lời được chấp nhận. –

Trả lời

11

Cảm ơn Kenji, điều này thực sự hoạt động:

ui.draggable.draggable('option','revert',true); 

tôi cũng phải vật lộn với điều này cho một buổi sáng cho đến khi tìm được bài viết của bạn, nhờ

0
.droppable({ 
    greedy: true 
} 

tùy chọn này nhất thiết cần quá

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