2013-03-09 2 views
2

У меня есть некоторые элементы, которые при загрузке страницы недоступны. В некоторых случаях я добавляю еще некоторые из этих элементов (тот же селектор), и я хочу, чтобы новые элементы также были недоступны. Единственный вариант, чтобы вызвать исходную функцию droppable со всеми параметрами? Вы видите, вызов функции droppable довольно большой, и я действительно не хочу дублировать код таким образом. Есть ли более элегантный способ?Reinitialize 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

, но мне нужно, чтобы обеспечить все варианты снова? –

+0

@MosheShaham у вас есть два варианта 'hoverClass' и' drop' right, и вы не хотите, чтобы их снова удалили? Да? – thecodeparadox

+0

да, я бы хотел избежать дублирования кода –

Смежные вопросы