2012-10-30 158 views
5

我只需要一個下拉區域中的1個塊,並在需要時進行切換。爲什麼我可以禁用,但無法啓用可拖放功能?爲什麼我可以禁用,但不能啓用droppable功能?

這裏是我的代碼:

$('.my_block').draggable({ 
    revert: "invalid",   
}); 

$('.free').droppable({   
    accept: ".my_block", 
    drop: function(ev, ui) {    
     $(this).removeClass("free");  
     $(this).addClass("1");     
     ui.draggable.appendTo($(this)).removeAttr('style'); 
      $(this).droppable("disable");    
     }, 
     out: function(ev, ui) {      
      $(this).droppable("enable");  
      $(this).removeClass("1");  
      $(this).addClass("free");    
     },   
    }); 

的jsfiddle http://jsfiddle.net/4ABCN/2/

如何通過一個按鈕將所有紅色塊返回到主要位置?

+0

所以,你的目標是什麼行爲在for?我可能能夠幫助你! ':)' –

+0

我需要禁用droppable,當一個可拖動(紅色)元素,如果離開(沒有一個元素在那裏,將紅色塊移動到另一個黑色塊),我需要再次啓用它。現在我不能回到我的紅色塊在第一droppable位置,couse,禁用:( –

+0

Saweet,請參閱下面的帖子,希望它適合您的需要!:)) –

回答

2

工作演示已刪除舊的演示

新的演示試試這個:http://jsfiddle.net/7EbKS/

行爲:現在,當用戶移動你被允許放棄在空位置一個又一個的紅色方塊,

希望它適合原因:)

代碼

$(function() { 
    foo(); 

    $('.my_block').draggable({ 
     revert: "invalid", 
     stop: function() { 
      $(this).draggable('option', 'revert', 'invalid'); 
     } 

    }); 

    function foo() { 
     $('.block').droppable({ 
      greedy: true, 
      accept: ".my_block", 
      // tolerance: "fit", 
      drop: function(ev, ui) { 
       ui.draggable.appendTo($(this)).removeAttr('style'); 
      } 
     }); 
    } 
    $('.my_block').droppable({ 
     greedy: true, 
     tolerance: 'touch', 
     drop: function(event, ui) { 
      ui.draggable.draggable('option', 'revert', true); 
     } 
    }); 

}); 
+0

謝謝,但「我只需要在一個下拉區域1塊」,在您的代碼可以不止一個..我認爲這是因爲$('。1')。droppable(「enable」);類的問題,在OUT行動類不會改變:( –

+0

@EugenBorunoff看到我的更新後的帖子':)' –

+1

謝謝,親愛的:) –

相關問題