Перейти к основному содержанию

Назначение CTools modal обработчика на ссылку загруженную через ajax

Отправлено said от сб, 02/20/2016 - 17:29

В штатном режиме ссылка на открытие модального окна выводится так

print ctools_modal_text_button($current_city, 'change-region', '', 'ctools-modal-select-city-style');

это отлично работает, если нам заранее известно где в DOM дереве эта ссылка находиться

Если эту ссылку вставить с помощью jQuery уже после того, как страница отрендерилась, обработчик загрузки модального окна нужно вешать вручную. Вот так

jQuery('#checkout-tabs-pickup .ctools-modal-select-city-style').once('ctools-use-modal', function() {
  var $this = jQuery(this);
  $this.click(Drupal.CTools.Modal.clickAjaxLink);
  var element_settings = {};
  if ($this.attr('href')) {
    element_settings.url = $this.attr('href');
    element_settings.event = 'click';
    element_settings.progress = { type: 'throbber' };
  }
  var base = $this.attr('href');
  Drupal.ajax[base] = new Drupal.ajax(base, this, element_settings);
});

 

Теги