Как да изпълним JS преди и след AJAX събитие

Публикувано петък, 17/07/2015 - 23:55

В тази статия ще разгледаме проблемите с извикването на js събития преди и след задействане на ajax събития.

Съдържание

Извикване на js събитие след ajax

Задачата се решава лесно с помощта на Ajax API. За да направим това, имаме нужда от функциятаajax_command_invoke(). Тази функция извиква командата invoke, т.е. jQuery клиентски код за елементи, които имат подходящ селектор. Проектиран за прости jQuery команди като: attr(), addClass(), removeClass(), toggleClass() и др. Така че нашият прост код на формуляр е както следва:

Нека опишем обратното извикване на Ajax. Тук например получаваме текущото време и го предаваме за последващо вмъкване в html с помощта на Ajax и с помощта на функцията js.

js файл ще съдържа следния код:

Резултатът от задействащите събития е показан на изображението по-долу.

изпълним

Извикване на js събитие преди ajax

Всъщност задачата е да сменим реда на извикване на командитеajax_command_after() иajax_command_invoke(), т.е.

Сега получаваме ситуация, в която js работи първо и вмъква часа във формат за пълно време (не забравяйте, че ajax получава часа във формат на времево клеймо).

след
Можете също да прикачите манипулатор на събитие към Ajax бутон. Но внимавайте(!),onlcik() няма да работи за вас, т.к. това събитие вече се използва от рамката на ajax. Следователно, закачете събития, различни отonclick(), напримерmousedown(),mouseup() и т.н. Друг проблем, който може да възникне, е предотвратяването на ajax повикване (например, правене на бутон неактивен, докато потребителят не попълни определено поле). Тези. в тази ситуация можете да направите следното:

  • Добавете атрибутdisable за бутонаajax при зареждане на страницата.
  • Добавете събитие, за да промените полетоchange() и да проследите промените в текста в полето. Ако данните са въведени - премахнете атрибута disable, ако полето е празно - добавете го (атрибут) отново