2013-03-09 51 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

相关问题