Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проблема с Тригером (https://javascript.ru/forum/jquery/34844-problema-s-trigerom.html)

svs_js 21.01.2013 16:40

Проблема с Тригером
 
Всем привет,

У меня есть плагин jQuery Grid
при клике на строку срабатывает тригер onBeforeSelectRow.
а так же выполняется функция __doPostBack(self.element.data('name'), eventName);
Какая шлет ПОСТ и получает ответ и меняет некоторый блок на сайте.

так вот мне при клике на строку, кроме выполнения моей функции __doPostBack, нужно выполнить еще какую-то другую функцию. Допустим, это даже функция изменения фона страницы.

вот я перед выполнением кода __doPostBack(self.element.data('name')
добавляю CSS функцию, но она срабатывает после получения ответа от ПОСТА. И такая проблема только в хроме и ИЕ.
Если я ставлю брекпоинт на функции CSS, функция выполняется и останавливается выполнение до того момента, пока не нажму F8.

Может кто-то знает, как мне выполнить мою функцию перед выполнением __doPostBack ??

DjDiablo 21.01.2013 23:31

программистская мудрость гласит.

лучше один раз увидеть код
чем сто раз услышать о нём.

nerv_ 22.01.2013 00:33

DjDiablo, еще она велит брать предоплату :)

svs_js 22.01.2013 17:33

Вот сложно это сделать.. с проекта нельзя выделить кусок скрипта.
Могу только объяснить. Это ASP NET

var theForm = document.forms['mainform'];
if (!theForm) {
    theForm = document.mainform;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}



и вот плагин jqGrid имеет функцию, какая выполняется при onSelect строки

_postBack: function (selected, rowid) {
      __doPostBack(self.element.data('name'), eventName);       
 }



При клике на строку так же выполняется функция $.ajax()


вот в функцию _postBack() я добавляю некоторый код
_postBack: function (selected, rowid) {
     $('body').css({ 'border': '1px solid red' }); 
   __doPostBack(self.element.data('name'), eventName);       
 }



и вот этот кусок - $('body').css({ 'border': '1px solid red' }); - выполняется только после того, как приходит ответ от аякса. тоесть с задержкой в секунды 2-3


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