Для вступления в общество новичков и профессионалов домен-индустрии, пожалуйста нажмите здесь ...

   
 Купля-продажа и обсуждение доменных имён
        

  
Вернуться   Форум о доменах > Дизайн и развитие проектов > Программирование
Регистрация Реноме Правила форума Справка Пользователи Социальные группы Все разделы прочитаны
Программирование PHP, Perl, HTML, XHTML, CSS, JavaScript, MySQL и другие языки кодирования.

Ответ
 
Опции темы
Сегодня
от 149р за .RU
Аренда сервера
2x Intel Hexa-Core Xeon E5-2420
Всего 79 евро!

с видеокартой GeForce GTX 1080 Ti
всего 99 евро!

от 149р за .РФ Реклама на DomenForum.net
Старый 26.02.2018, 22:44   #1
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,495
Доменные сделки: 24
Реноме: 1551
Одобрения
Спасибо (Отдано): 529
Спасибо (Получено): 750
Отправить сообщение для Port_Artur с помощью ICQ
JS не стыкуется с AJAX: HELP

На странице есть кнопка, при клике на которое всплывает модальное окно на Fancybox. JS в этом отрабатывает нормально.

Но, когда точно такую же кнопку (код точная копиия) подгружаешь через AJAX, то сколько на неё не кликай, - окно не всплывает.

Такое ощущение, что JS не видит что я кликаю на кнопку

ПОЧЕМУ?

JS и AJAX действительно не стыкуются?
Port_Artur вне форума   Ответить с цитированием
Старый 27.02.2018, 00:09   #2
 
Регистрация: 22.03.2012
Сообщений: 82
Доменные сделки: 4
Реноме: 166
Одобрения
Спасибо (Отдано): 14
Спасибо (Получено): 27
код покажите

добавлено через 2 минуты
например в jQuery есть click который с аякс не дружит, а есть
.live( "click", function() {
или
.on( "click", function() {
который работает с новыми элементами, которые выводит аякс

Последний раз редактировалось cmsdev; 27.02.2018 в 00:12. Причина: Добавлено сообщение
cmsdev вне форума   Ответить с цитированием
Старый 27.02.2018, 00:59   #3
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,495
Доменные сделки: 24
Реноме: 1551
Одобрения
Спасибо (Отдано): 529
Спасибо (Получено): 750
Отправить сообщение для Port_Artur с помощью ICQ
Сюда:

PHP код:
<div id="wrappers\" class=\"s-wrapper\">"
подгружается через AJAX:

PHP код:
<div id="wrapper" class="time-s">

                  <
div id="tst" max="20" class="s-title">Текст</div>

                  <
div class="s-week">
<
div id="y_1" class="show">
<
div class="e-day">26.02<br>Сегодня</div>
<
div class="time-one"><class="modalbox buttontime" href="#inline" rel="nofollow" >Тест</a></div>

... 
вот такой код JS не обрабатывает клик по ссылке в примере вверху:

Код HTML:
$("#wrappers").on("click", ".modalbox", function(){

....
Я привёл уже пример с делегированной обработкой событий
Вроде должно работать, но нет. Возможно ошибка.
Port_Artur вне форума   Ответить с цитированием
Старый 27.02.2018, 01:01   #4
 
Регистрация: 18.02.2017
Сообщений: 224
Доменные сделки: 10
Реноме: 432
Одобрения
Спасибо (Отдано): 6
Спасибо (Получено): 92
Port_Artur, если коротко: у Fancybox, как и у многих плагинов, есть функция инициализации, она запускается в момент загрузки страницы и вешает на существующие элементы свои события-свойства-мишуру-гирлянды.
Если через какое-то время на странице появляется новый элемент, ему эту ерунду уже никто не вешает, а значит надо просить плагин провести инициализацию повторно.

Если более подробно — надо смотреть конкретный код подключения плагина, его версию, его руководство.
Miqip вне форума   Ответить с цитированием
Старый 27.02.2018, 01:01   #5
 
Регистрация: 18.02.2017
Сообщений: 224
Доменные сделки: 10
Реноме: 432
Одобрения
Спасибо (Отдано): 6
Спасибо (Получено): 92
Port_Artur, если коротко: у Fancybox, как и у многих плагинов, есть функция инициализации, она запускается в момент загрузки страницы и вешает на существующие элементы свои события-свойства-мишуру-гирлянды.
Если через какое-то время на странице появляется новый элемент, ему эту ерунду уже никто не вешает, а значит надо просить плагин провести инициализацию повторно.

Если более подробно — надо смотреть конкретный код подключения плагина, его версию, его руководство.
Miqip вне форума   Ответить с цитированием
Старый 27.02.2018, 01:02   #6
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,495
Доменные сделки: 24
Реноме: 1551
Одобрения
Спасибо (Отдано): 529
Спасибо (Получено): 750
Отправить сообщение для Port_Artur с помощью ICQ
Вот так если быть точным:

Код HTML:
$(document).ready(function( {scrolling: VISIBLE,}) {

		$(".modalbox").fancybox() ;
		$("#contact").submit(function() { return false; });

$("#wrappers").live("click", ".modalbox", function(){
добавлено через 1 минуту
Фенсибокс V3.0.47 2017 года

добавлено через 3 минуты
Я так понимаю судя с ваших слов, нужно как заново повесить:

PHP код:
$(".modalbox").fancybox() ; 
Как это сделать?

добавлено через 20 минут
Повторно повесил Фенсибокс $(".modalbox").fancybox() ; в ON
Не знаю правильно ли, но так заработало:

PHP код:
$(document).ready(function( {scrollingVISIBLE,}) {

        $(
".modalbox").fancybox() ;
        $(
"#contact").submit(function() { return false; });

$(
"#wrappers").on("click"".modalbox", function(){

$(
".modalbox").fancybox() ; 
добавлено через 36 минут
Ещё 1 ПРОБЛЕМА!!!

В ссылке передаётся параметр id-text:
Код HTML:
<a class="modalbox buttontime" href="#inline" id-text="сообщение" rel="nofollow" >
И раньше код записывал его значение

Код HTML:
 $("input#id-text").val($(this).attr("id-text"));
в Value (изначально значение =1):

Код HTML:
<input type="hidden" id="id-text" name="id-text" value="1">
А сейчас перестал записывать
В исходном коде открытого окна строка выглядит

Код HTML:
<input type="hidden" id="id-text" name="id-text" value="">
Что сделать чтобы записывал?

добавлено через 8 часов 47 минут
Вместо

Код HTML:
$("#wrappers").live("click", ".modalbox", function(){
нужно использовать

Код HTML:
$("#wrappers").on("click", ".modalbox", function(){

Не знаю в чём именно разница, но так работает и видит передаваемые через ссылку переменные.

Всем спасибо за помощь

Вопрос закрыт

Последний раз редактировалось Port_Artur; 27.02.2018 в 09:50. Причина: Добавлено сообщение
Port_Artur вне форума   Ответить с цитированием
Старый 27.02.2018, 09:55   #7
 
Аватар для pegs
 
Регистрация: 07.02.2008
Адрес: Лимпопо
Сообщений: 5,352
Доменные сделки: 17
Реноме: 1904
Одобрения
Спасибо (Отдано): 444
Спасибо (Получено): 1671
Сообщение от Port_Artur Посмотреть сообщение
Как это сделать?
Загрузили АJAX-ом новый элемент - привязываете заново.

Сообщение от Port_Artur Посмотреть сообщение
Что сделать чтобы записывал?
Вы какие-то куски оторванные выкладываете, по ним ничего не понять. В частности, не понятно где вызывается "$("input#id-text").val($(this).attr("id-text"));". Работает ли с незагруженных AJAX-ом элементов или нет.
__________________
«Палата номер 6» ищет своего Главврача
pegs вне форума   Ответить с цитированием
Старый 27.02.2018, 10:13   #8
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,495
Доменные сделки: 24
Реноме: 1551
Одобрения
Спасибо (Отдано): 529
Спасибо (Получено): 750
Отправить сообщение для Port_Artur с помощью ICQ
Сообщение от pegs Посмотреть сообщение
В частности, не понятно где вызывается "$("input#id-text").val($(this).attr("id-text"));".
Это код в HEAD, загружается вместе со страницей.

Уже всё получилось. Я просто не знал что на загружаемые элементы нужно заново всё вешать.
Port_Artur вне форума   Ответить с цитированием
Старый 27.02.2018, 10:34   #9
 
Аватар для pegs
 
Регистрация: 07.02.2008
Адрес: Лимпопо
Сообщений: 5,352
Доменные сделки: 17
Реноме: 1904
Одобрения
Спасибо (Отдано): 444
Спасибо (Получено): 1671
Ещё одна из особенностей JS - "специфическая" видимость/привязка переменных Вот тут иногда мозг может закипеть
__________________
«Палата номер 6» ищет своего Главврача
pegs вне форума   Ответить с цитированием
Старый 27.02.2018, 10:35   #10
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,495
Доменные сделки: 24
Реноме: 1551
Одобрения
Спасибо (Отдано): 529
Спасибо (Получено): 750
Отправить сообщение для Port_Artur с помощью ICQ
Примерно так вчера и было, пока не помогли разобраться.
Сам то я JS не знаю, только благодаря примерам из Интернета и помощи знатоков что-то получается делать.
Port_Artur вне форума   Ответить с цитированием
Ответ



Реклама

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Закладки Добавить Тема в закладки

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

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

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


Текущее время: 15:00. Часовой пояс GMT +4.