У меня есть подчиненная форма, которую я получаю через ajax и добавляю к своей основной форме. На стороне сервера я обертываю субформ в наборе полей с помощью «сворачиваемых» и «свернутых» классов, drupal_render массива и передает его обратно в json (SOP). На веб-интерфейсе, я могу получить складную поведение, используя следующий код:Каков правильный способ инициализации поведения коллапса drupal
jQuery('#my-fieldset legend span').click(function(){
Drupal.toggleFieldset(jQuery('#my-fieldset'));
});
Это работает, но это не похоже на правильный путь, чтобы сделать это. Я попытался крепление поведения, используя этот код:
Drupal.behaviors.collapse.attach(jQuery('#my-fieldset'), Drupal.settings);
и
Drupal.behaviors.collapse.attach(jQuery('#my-fieldset'));
но ни правильно применять поведение.
Итак, как правильно инициализировать это поведение вручную?
ТИА
Я думаю, что у меня есть это:
Drupal.behaviors.collapse.attach(jQuery(document), Drupal.settings);
РЕШЕНИЕ
БЛАГОДАРЯ prabeen гири! Drupal.attachBehaviors имеет смысл ...
Я проверил с drupal.attachBehaviors(), но, возможно, я не использовал его правильно. Я думаю, что я передавал объект jquery как контекст, а не только селектор, как видно из приведенного вами примера, если это имеет значение. Я еще поиграю с ним.
я не был знаком с методом загрузки(), который является хорошей стенографией для моего традиционного подхода ...
jQuery.ajax({
url: Drupal.settings.basePath + url,
type: 'POST',
data: data,
dataType: 'json',
success: function(response){
if (response.status != undefined && response.data != undefined && response.status == 'ok') {
callback(response.data);
}
return false;
}
});
Спасибо за понимание. Очень полезно.
(я upvote вас, но у меня нет респ)