Добрый день, сколько раз работал и переделывал компонент bitrix:sale.order.ajax, и только сегодня столкнулся с тем что после ajax загрузки (когда меняем способ доставки или оплату) перестает работать jquery. в чем может быть проблема может кто то сталкивался? На двух сайтах такая беда.
Нужен проект или доработка? Пиши в личку, я всегда на связи! Скайп - sangro0307
Бьюсь над той же проблемой. Корни более менее ясны, хотя, по мне так, не логичны Написал обращение в саппорт, Вот ответ.
Цитата
Добрый день. Проблема в том, что при сабмите формы страница полностью перерисовывается, сабмит запускается на каждом изменении в форме оформления заказа. Вы можете повесить свой обработчик на сабмит формы, аналогично этому примеру:
С уважением, старший специалист отдела технической поддержки Шестопалов Лев
С js библиотекой битрикса плохо знаком. начал курить мануалы.
Насколько смог разобраться, obForm.BXFormTarget это ссылка на форму, передать ее можно так: BX('ORDER_FORM_ID_NEW'), где ORDER_FORM_ID_NEW это id формы.
'load' это понятно, событие. (выходит, что битрикс умеет вешать события даже на динамически создаваемые элемены. Похоже на аналог устаревшего метода .live() в jQuery или на .on() )
А вот на BX.proxy я застрял.Кто-нибудь может на пальцах объяснить что это и с чем едят? и как применить в конкретном случае?
Если я правильно понимаю, то в загружаемой части не отрабатывают какие-то скрипты. Стопроцентный вариант - это вынести их в отдельный js-файл, ну или хотя в статичную область html.
Пример кода в студию. Ставлю на то, что вы не верно поняли суть вопроса. я поясню. Задача элементарна. Выполнить кусок js кода после обновления битриксовым аяксом страницы с компонентом оформления заказа. При этом код должен опираться на jquery. (чистый js, разумеется работает как нужно)
Возможно, не до конца понял. Так у BX.ajax вроде есть onsuccess событие? Или я ошибаюсь? Вопрос тогда ,может пропустил, код, который должен быть выполнен, тоже загружается аяксом? Его то, почему нельзя вынести в отдельный js файл?
Там не BX.ajax, а jsAjaxUtil.InsertFormDataToNode У него нет вообще коллбэков.
Цитата
Его то, почему нельзя вынести в отдельный js файл?
Да, понимаете не до конца. проблема в том, что после того как указанный мной выше метод отработает, отваливается в принципе jQuery, Я и так пишу весь js в инклюд файлах. Просто из того файла не представляется возможным поставить слушатель какого-либо события на изменение контента страницы, кроме как поставить в цикле проверку(пока этим костылем и подпер, но это говнокод.) Мне казалось логичным просто запихнуть кусок кода, который я собирался выполнить в код, который возвращает InsertFormDataToNode. Но он критует. Что собственно и является сабжем.
Проблема актуальна. Пробую разные подходы решения, но ничего не срабатывает. Нужно было кастомизировать форму оформления заказа, были написаны скрипты, но при срабатывании валидации, скрипты не работают.