[РЕШЕНО] Drupal behaviors - как выполнять только для определенных условий

Главные вкладки

Аватар пользователя semjuel semjuel 14 января 2013 в 4:47

Доброго времени суток, мастера Друпала.
Возникла следующая проблема, начал разбираться с Drupal.behaviors - выполняется после каждого ajax-запроса.
Собственно вопрос:
использую код

(function ($) {
  Drupal.behaviors.myModule = {
    attach: function (context, settings) {

                                                  $("#accordion").accordion({
                                                        create: function() { upload = true; },
                                                        collapsible: true,
                                                        active: -1
                                                  });
    }
  };
})(jQuery);

На странице где используется данный код есть фильтр, который работает через ajax и есть изображение (настроеное через colorbox - который тоже использует ajax при показе изображение во всплывающем окне).
Как сделать чтоб "Drupal.behaviors" вызывалось только при использовании фильтров на данной странице и не вызывалось при нажатии на картинку (что по сути одно и тоже).
А то сейчас если нажать на картинку, то вызывается Drupal.behaviors, а этого не надо.

Нашел решение сам:
Нужно было использовать "ajaxComplete"
вот код:

(function ($) {
  Drupal.behaviors.views = {
    attach: function (context, settings) {
        $("#views-exposed-form-view-materials-page").unbind();
        $('#views-exposed-form-view-materials-page').ajaxComplete(function(event, xhr, settings) {
                //alert("end of ajax");
                 $("#accordion").accordion({
                        create: function() { upload = true; },
                        collapsible: true,
                        active: -1
                });
        });
    }
  };
 })(jQuery);