Доброго времени суток, мастера Друпала.
Возникла следующая проблема, начал разбираться с Drupal.behaviors - выполняется после каждого ajax-запроса.
Собственно вопрос:
использую код
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"
вот код:
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);