Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Не работают скрипты после ajax в БО Татьяны

Здесь авторы могут постить бета-версии своих расширений для phpBB. Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения

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

Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 4 месяца
Откуда: Украина! Харьков
Благодарил (а): 68 раз
Поблагодарили: 241 раз

Не работают скрипты после ajax в БО Татьяны

Сообщение Alecto »

у меня на странице работают скрипты, после добавления ответа через БО скрипты перестают работать, хотя ошибок на странице нет.
почему такое происходит? можно както исправить?

скрипты простейшие - ресайз блоков.
помогает только отключения аякса.
Татьяна5 писал(а):Потому что скрипты работают на той html-разметке, которая появилась после загрузки страницы, а не обновилась позже без перезагрузки. Переписывайте свой код через jQuery.on с тремя параметрами. Со стороны QuickReply с этим ничего не сделать.
вот такую конструкцию пробую - не работает.

Код: Выделить всё

$('#posts .postprofile').on('mouseover','#post_ajax',function(){...}).on('mouseout','#post_ajax',function(){...});
привязался к вашему #post_ajax

Добавлено спустя 1 час 40 минут 22 секунды:
Re: [DEV] QuickReply - Расширенные возможности быстрого ответа

Код: Выделить всё

$('#post_ajax_content').on('load','#posts .postprofile',function(){	ShowHideProfile(); });

	ShowHideProfile();

function ShowHideProfile() {...}
до аяксе работает все.
после аякса - везде, кроме поста с аяксом.
ну что ему еще надо???!!!

не получается.
помогите.
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 11 лет 8 месяцев
Откуда: Израиль
Благодарил (а): 73 раза
Поблагодарили: 248 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Алг »

Ему надо делегата, мы об этом говорили, а примеры привязки через делегирование можно найти и в БО и в БП
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12443
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2479 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Татьяна5 »

Alecto писал(а):привязался к вашему #post_ajax
А если к #posts?
Alecto писал(а):

Код: Выделить всё

$('#post_ajax_content').on('load','#posts .postprofile',function(){	ShowHideProfile(); });

	ShowHideProfile();

function ShowHideProfile() {...}
load - при загрузке страницы
Как понимаю, функцию надо вызывать после завершения ajax-отправки?
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 4 месяца
Откуда: Украина! Харьков
Благодарил (а): 68 раз
Поблагодарили: 241 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Alecto »

Татьяна5 писал(а): функцию надо вызывать после завершения ajax-отправки?
да.
но я не уверен в правильности построения скрипта.

ShowHideProfile(); - эта часть подключает функцию при загрузке страницы.

$('#post_ajax_content').on('load','#posts .postprofile',function(){ ShowHideProfile(); });
эта часть по задумке должна отслеживать загрузку вашего аякс-блока #post_ajax_content

но, у меня не было ранее опыта использования аякса.
вчера несколько часов гуглил и пытался разобраться с этой конструкцией, но максимум чего добился - заработала только часть блоков, что говорит о том - не разобрался я.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12443
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2479 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Татьяна5 »

Тут надо пробовать...

Если в overall_footer_after.html в QuickReply после

Код: Выделить всё

				<!-- IF S_ABBC3_INSTALLED -->
					var bbvideo = $('#post_ajax_content').find('.bbvideo');
					if(bbvideo.length > 0) {
						$('#post_ajax_content .bbvideo').bbvideo();
					}
				<!-- ENDIF -->
добавить событие, скажем такое

Код: Выделить всё

<!-- EVENT tatiana5_quickreply_overall_footer_ajaxsending_after -->
И из этого события в другом расширении вызвать функцию ShowHideProfile(); для #post_ajax_content - работать будет?
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 4 месяца
Откуда: Украина! Харьков
Благодарил (а): 68 раз
Поблагодарили: 241 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Alecto »

Татьяна5 писал(а):добавить событие, скажем такое
сделал

в файл tatiana5_quickreply_overall_footer_ajaxsending_after.html сначала добавил ShowHideProfile();
скрипт стал работать для минипрофиля в аякс-сообщении, но задублировался для всех остальных сообщений, поскольку функция вызывается так же и при загрузке страницы.

если в событие ТАТЬЯНА вставить этот код - ничего не происходит, т.е. сам код, приведенный ниже, построен не правильно.

Код: Выделить всё

$('#post_ajax_content').on('load','#posts .postprofile',function(){
	ShowHideProfile();
});
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12443
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2479 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Татьяна5 »

Надо переписывать функцию ShowHideProfile(), чтобы её можно было вызвать для определённого id. Пример - тот же bbvideo() из ABBC3
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 4 месяца
Откуда: Украина! Харьков
Благодарил (а): 68 раз
Поблагодарили: 241 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Alecto »

а можно, например, в функцию передавать параматров идентификатор?\
т.е. при загрузке страницы передаем общий для всех блоков класс .postprofile, а из события ТАТЬЯНА - вызываем с айди одного блока, отвалившегося изза аякса #post_ajax_content .postprofile?
Последний раз редактировалось Alecto 06.11.2014 10:38, всего редактировалось 1 раз.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12443
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2479 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Татьяна5 »

Alecto писал(а):в функцию передавать параматров идентификатор?
Тут надо пробовать. Если заработает - то можно
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 4 месяца
Откуда: Украина! Харьков
Благодарил (а): 68 раз
Поблагодарили: 241 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Alecto »

работает, но нестабильно.
если склейка происходит - все работает.
если без склейки - перестает работать в некоторых профилях.
пока логики отваливания не понял.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12443
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2479 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Татьяна5 »

Не в предыдущем сообщении ли?

Код: Выделить всё

if(post_id_after > post_id_before) 
{
ShowHideProfile($('#post_ajax').prev('div'));
}
А если ещё так? В том же новом событии
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 4 месяца
Откуда: Украина! Харьков
Благодарил (а): 68 раз
Поблагодарили: 241 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Alecto »

если происходит склейка - все норм.
если предыдущий автор отличался от последнего (меня), то склейка не выполняется, при этом мои профили отрабатываются (в том числе и в аякс посте и в предыдущих), а профили других авторов не работают, причем все.

Добавлено спустя 8 минут 24 секунды:
т.е. в сообщениях с аяксом как раз все работаюет, а перестает работать предыдущих сообщениях, причем не во всех, а в части.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 4 месяца
Откуда: Украина! Харьков
Благодарил (а): 68 раз
Поблагодарили: 241 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Alecto »

решение проблемы по прежнему актуально.
пока отключил аякс.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12443
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2479 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Татьяна5 »

Надо вызвать функцию для той части сообщений, где она перестаёт работать
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 4 месяца
Откуда: Украина! Харьков
Благодарил (а): 68 раз
Поблагодарили: 241 раз

Re: Не работают скрипты после ajax в БО Татьяны

Сообщение Alecto »

Alecto писал(а):т.е. в сообщениях с аяксом как раз все работают, а перестает работать предыдущих сообщениях, причем не во всех, а в части.
уже пробовал

Код: Выделить всё

$('#post_ajax_content').on('load','#posts .postprofile',function(){	ShowHideProfile(); });

	ShowHideProfile();

function ShowHideProfile() {...}
первая теоретически срабатывает на перезагрузку аякс-контента, вторая - при загрузке страницы.
но в таком случае аякс пост работает корректно, а с остальными минипрофилями страницы - как попало.

Вернуться в «Бета-версии расширений для phpBB»