Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Очень нужно.. Отправка HTML куски в JSON от сервера используя Ajax (https://javascript.ru/forum/jquery/12629-ochen-nuzhno-otpravka-html-kuski-v-json-ot-servera-ispolzuya-ajax.html)

bivnikus 26.10.2010 15:15

Очень нужно.. Отправка HTML куски в JSON от сервера используя Ajax
 
Впервые столкнулся с этим вопросом. В общем стал юзать фреймвок jQuery. Выполняет аякс запросы хорошо.. Отправляю кусоки HTML в JSON формате. А т.к. JSON требует двойные кавычки, то в кусочках HTML, которые помещаю в JSON-ответ от сервера, приходится экранировать атрибуты тегов типа class='class1', одинарными кавычками в общем та. В общем картина такая:
$HTML = '<div class=\'class1\'>'


Скрипт работает, JavaScript вставляет куски HTML, все в ажуре... НО, когда стал отправлять код, события на котором перехватываются JavaScript, он не стал их перехватывать. отправляю по аякс-запросу HTML-код с ссылкой и $(document).ready(function(){, уже стоит код перехвата кликов по данной ссылке. Аякс вставляет полученный код с ссылкой, но ссылка не работает.
Перехват работает если ссылка есть в момент загрузки ВСЕЙ страницы. А если она получена через JSON массив - нифига.
Не понимаю, может перехват событий возможен тока на тех элементах DOM, которые доступны с момента загрузки всей страницы чтоли

Kolyaj 26.10.2010 15:24

Цитата:

Сообщение от bivnikus
перехват событий возможен тока на тех элементах DOM, которые доступны с момента загрузки всей страницы чтоли

Перехват событий возможен на тех элементах, на которых вы его повесили. Если элемента на момент вешанья не существует, как на него можно повесить перехват?

Гуглите jQuery live

danik.js 26.10.2010 15:34

Для htm'я в качестве контейнера удобнее юзать xml с секцией CDATA

bivnikus 26.10.2010 15:52

Огромное спосибо, я к этому пришел 5 минут тому назад и прописал функцию развешивания перехватов после каждой вставки HTML..

Gvozd 26.10.2010 22:43

danik.js,
ваше сообщение слабо относится к данной теме.
по сути дела, вы увидели знакомое слово, и выдали случайный, и весьма сомнительный факт

danik.js 26.10.2010 23:25

Да что вы такое Gvozd говорите. Сам не так давно решал подобную дилему. Сначала слал с сервера json с куском html'я, но порядком надоело экранить кавычки и переносы строк. В итоге пришол к выводу что проще использовать xml, заключая весь html-код в CDATA section, нежели json. Хотя и тут может быть подвох - внутри html-я может попасться закрывающий ]]> ...
Разумеется не всегда удобно перейти с json на xml, но вариант имеется.
Так что не надо тут ;)

Kolyaj 26.10.2010 23:39

Цитата:

Сообщение от danik.js
но порядком надоело экранить кавычки и переносы строк.

А не надо ничего экранить, надо использовать функции для сериализации в JSON.

Gvozd 26.10.2010 23:49

Цитата:

Сообщение от danik.js
Да что вы такое Gvozd говорите

именно то и говорю
проблема ТС была в том, что на загруженные элементы у него не распространялись навешенные ранее события.
Эта проблема бы у него сохранилась, даже если бы он использовал XML

danik.js 26.10.2010 23:54

Дело в том что я сначала писал по теме, но меня опередил Kolyaj, пришлось все удалить что строчил, ну а чтоб небыло обидно - оставил про xml ))


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