Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 07.11.2018, 15:51   #1
SoFuWa
Форумчанин
 
Регистрация: 14.08.2008
Адрес: Пенза
Сообщений: 64
Репутация: 10
По умолчанию Как взаимодействовать с DOM после ajax?

Что то я не пойму как сделать и в аякс не разбираюсь.
Есть select меню,
Код:

<select class="catalog_show_elements" name="vibor_razdela" onchange="qwe(this.value);">

при выборе обновляется контент в div. Select статический, вне этого дива. Нужно что бы при обновлении контента элемент radio input с одинаковым id сохранял своё состояние, для этого нужно smartFilter.click(radiobtn).
Код:

<input type="radio" value="5353456" name="arrFilter_320" id="arrFilter_320_53534562" onclick="smartFilter.click(this)">

Если просто делать smartFilter.click(radiobtn) то идёт взаимодействие с элементом DOM до обновления.
Прочитал что нужно делегировать. У меня нет никаких кликов и тд. Попробовал использовать on change
Код:

$(document).on('change', ".catalog_show_elements", function () {
idfiltra = $('input[name=arrFilter_320]:checked').attr('id');	
var radiobtn = document.getElementById(idfiltra);
smartFilter.click(radiobtn);
});

Но всё равно document.getElementById(idfiltra); выбирает старый элемент input который был до ajax обновления. Может нужно использовать ajax success: function, но url не статичный, а постоянно разный у этой страницы. В общем я запутался, может кто подскажет.
SoFuWa вне форума   Ответить с цитированием
Старый 07.11.2018, 15:55   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,102
Репутация: 3316

icq: 512-765
skype: alexp.frl
По умолчанию

В этом коде ничего про ajax нет.

У ajax есть callback'и срабатывающие при завершении запроса.
Alex11223 вне форума   Ответить с цитированием
Старый 07.11.2018, 16:03   #3
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,479
Репутация: 5308
По умолчанию

я бы тоже смотрел в первую очередь на
Цитата:
Сообщение от Alex11223 Посмотреть сообщение
ajax есть callback'и срабатывающие при завершении запроса
Кстати, это
Цитата:
Сообщение от SoFuWa Посмотреть сообщение
Может нужно использовать ajax success: function
именно оно.

найдите функцию qwe()
и смотрите, как она вызывает AJAX. Найдите то место, где в результате AJAX получает ответ от сервера и
Цитата:
Сообщение от SoFuWa Посмотреть сообщение
обновляется контент в div
и вот там и допишите нужный код для
Цитата:
Сообщение от SoFuWa Посмотреть сообщение
что бы при обновлении контента элемент radio input с одинаковым id сохранял своё состояние, для этого нужно smartFilter.click(radiobtn).
кстати, я не понимаю, что такое "radio input с одинаковым id сохранял своё состояние"...
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 07.11.2018, 16:13   #4
SoFuWa
Форумчанин
 
Регистрация: 14.08.2008
Адрес: Пенза
Сообщений: 64
Репутация: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я бы тоже смотрел в первую очередь на

Кстати, это
именно оно.
найдите функцию qwe()
и смотрите, как она вызывает AJAX. Найдите то место, где в результате AJAX получает ответ от сервера и

и вот там и допишите нужный код для

кстати, я не понимаю, что такое "radio input с одинаковым id сохранял своё состояние"...
да qwe я сам писал функцию =) аякс вызывается
Код:

BX.ajax.insertToNode(urlrazdela + '?bxajaxid=d234234234234', 'comp_d234234234234');

это обновляет компонент битрикса, да там всё жопа как запутано, если лезть в insertToNode там тоже ответа нет, и тд))
Вся проблема в том что всегда выбирает старый элемент, который был до обновления контента.

А не дадите пример как использовать ajax success: function, если URL php страницы всё время разный, там кликаешь на фильтр из радио инпутов и url меняется.

А тут
Код:

$.ajax({
  url: 'response.php?action=sample1',
  success: function(data) {
    $('.results').html(data);
  }
});

нужно указывать url

Цитата:
кстати, я не понимаю, что такое "radio input с одинаковым id сохранял своё состояние"...
если просто, то нужно выполнить smartFilter.click(radiobtn) на радиобутоне после обновления.

Последний раз редактировалось SoFuWa; 07.11.2018 в 16:16.
SoFuWa вне форума   Ответить с цитированием
Старый 07.11.2018, 16:24   #5
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,479
Репутация: 5308
По умолчанию

bitrix я не знаю.
судя по оф.документации
нужно менять это на BX.ajax.get или BX.ajax.post и там указывать функцию на callback

а ещё посмотрит статью https://dev.1c-bitrix.ru/community/w...556/blog/5766/
может быть, это поможет...
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 07.11.2018, 18:42   #6
SoFuWa
Форумчанин
 
Регистрация: 14.08.2008
Адрес: Пенза
Сообщений: 64
Репутация: 10
По умолчанию

сделал в общем через URL, там можно параметры фильтру передавать, когда аякс перегружаешь. Странная эта CMS битрикс.
SoFuWa вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как работает innerhtml после ajax загрузки контента lerneree JavaScript, Ajax 3 30.05.2018 13:57
как получить исходный код страницы после ajax lerneree JavaScript, Ajax 5 28.05.2018 13:36
Не меняется картинка после ajax загрузки. Mr_freeman JavaScript, Ajax 5 28.01.2013 13:01
Нужен программист JavaScript (Ajax, работа с DOM) happydays2000 Работа на постоянной основе - Вакансии 0 26.10.2011 22:47
Как получить GUI элементы и с ними взаимодействовать rangel Общие вопросы Delphi 6 29.11.2010 13:46


07:39.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru