В Drupal, как я могу использовать js, чтобы реагировать на кнопку CCK «Добавить еще один элемент»? - PullRequest
1 голос
/ 12 июля 2011

Я добавляю немного js, которые изменяют поля (а именно, ограничивают возможность выбора полей на основе того, что было выбрано в другом поле выбора).

Однако я знаю, как реагировать на поля, которые существуют, когда вызывается $ (document) .ready. Я не знаю, как обнаружить создание нового поля (а именно, созданного с помощью кнопки «Добавить другой элемент» в полях неограниченного значения CCK), чтобы также изменить это поле.

Как и во всем в Drupal, ответ на этот вопрос является либо действительно базовым в jQuery, либо чем-то действительно сложным. Я новичок в jQuery, так что я надеюсь, что это первый.

1 Ответ

0 голосов
/ 12 июля 2011

Если вы работали с более поздней версией jQuery, вы могли бы использовать функцию .live , но, поскольку Drupal немного отстает от jquery, вам нужно будет использовать Drupal Behaviors. Любой код JavaScript, который вы хотите запустить, когда новые элементы вставляются / удаляются из DOM, должен быть объявлен в поведении стороны, поэтому он будет запускаться при вызове Drupal.attachBehaviors.

В Drupal 6 это будет выглядеть примерно так:

Drupal.behaviors.myModule = function (context) {
  //Code here is run when the DOM is updated (if Drupal.attachBehaviors is called)
};

и в Drupal 7:

Drupal.behaviors.myModule = {
 attach: function (context, settings) { // code here for when items are attached},
 detach: function (context, settings) { // code here for when items are detached}
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...