2013-03-09 73 views
2

我有一些在頁面加載時可以放置的元素。在某些點上,我添加了更多這些元素(相同的選擇器),並且我希望新元素也可以放置。是所有選項調用原始droppable函數的唯一選項嗎?你看,Droppable函數調用非常大,而且我不想這樣複製代碼。有沒有更優雅的方式?在添加元素後重新初始化jQuery UI droppable

這是澄清代碼:

$('td:not(.td-disabled)').droppable({ 
     hoverClass: "ui-state-active", 
     drop: function(event, ui) { 
      // ... very big block of code 
     } 
    }); 
$('.td-disabled').removeClass('td-disabled'); 

// I dont want to do this: 
$('td').droppable({ 
      hoverClass: "ui-state-active", 
      drop: function(event, ui) { 
       // ... very big block of code 
      } 
     }); 

回答

1

你可以試試:

var hoverCls = 'ui-state-active'; 
var dropFn = function(event, ui) { 

}; 

$('td').droppable('destroy').droppable({ 
    hoverClass: hoverCls, 
    drop: dropFn 
}); 
+0

但我需要再次提供所有的選項? – 2013-03-09 20:19:51

+0

@MosheShaham你有兩個選擇'hoverClass'和'drop',你不想再糾正它們了嗎? – thecodeparadox 2013-03-09 20:21:08

+0

是的,我想避免代碼重複 – 2013-03-09 20:22:18