Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Забуксовал с ajaxComplete (https://javascript.ru/forum/jquery/48095-zabuksoval-s-ajaxcomplete.html)

ArtemKrass 19.06.2014 14:54

Забуксовал с ajaxComplete
 
Всем доброго дня.
Ребята, что-то не получается совладать с событием ajaxComplete.

Допустим Есть несколько форм на странице. Все обрабатываются Ajax.

Мне нужно после наступления события завершения Ajax выводить окошко с данными, но только для определенной формы.

Делаю так:
jQuery("#block-webform-client-block-15").ajaxComplete(function(e, xhr, settings){

jQuery(this).find(".messages.error").slideDown("slow");

jQuery("body").click(function() {
  jQuery("#block-webform-client-block-15 .messages.error").slideUp("slow");
});
});


Как мне привязать эту конструкция к определенной кнопке, т.е. чтобы эта функция выполнялась только по нажатию на нужный submit.

А так получается что событие ajaxComplete наступает при нажатии на любую кнопку любой формы.

ArtemKrass 19.06.2014 16:35

Спрошу проще, можно ли указать условие (id нажатой кнопки) при котором сработает функция в ajaxComplete?

ArtemKrass 19.06.2014 16:58

Схема такая:
нажал кнопку - сработал ajax - выскочил блок

форма рабочая, код формы недоступен. Допустим мне нужно добавить анимацию выскакивающему блоку.

Я делаю ему в css display: none.

Затем на Jquery добавляю свойства. Но вот как мне обработать событие что данный блок появился в DOM?

Я предположил что можно использовать ajaxComplete. Т.е. После возникновения данного события нужный блок существует и с ним можно работать. Но позже появилась проблема!

Если данный блок уже существует и при нажатии на другую кнопку (которая вызовет ajaxComplete) мой код тоже сработает. Поэтому ищу способ связать ajaxComplete с нажатой кнопкой! Запутался окончательно!

ArtemKrass 19.06.2014 21:37

Ребят, может я не в ту сторону копаю. Может все проще?
Как правильно работать с блоком (например цеплять на него анимацию и тд), который появляется после выполнения Ajax?

pro_xaoc 20.06.2014 10:40

на каждую форму свой $.ajax и соответственно будут разные ajaxComplete. И если урл и отправляемые данные одинаковые, можно воспользоваться promise'ами, чтобы укоротить код.


Часовой пояс GMT +3, время: 05:34.