Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Создаваемый с помощью скрипта div и его особенности (https://javascript.ru/forum/jquery/59419-sozdavaemyjj-s-pomoshhyu-skripta-div-i-ego-osobennosti.html)

goooooch 10.11.2015 14:01

Создаваемый с помощью скрипта div и его особенности
 
Есть функция, которая по клику на кнопку отправляет ajax-запрос и возвращает результат в виде div#content, который благополучно вставляется в страницу и виден через консоль разработчика в Хроме.

Но если смотреть html-код всей страницы (в том же Хроме), то div#content в нем нет!

Подозреваю, что по этой причине js-скрипты этот div#content "не видят" и работать с ним не хотят.

Как это обойти?

ksa 10.11.2015 14:30

Цитата:

Сообщение от goooooch
Подозреваю, что по этой причине js-скрипты этот div#content "не видят" и работать с ним не хотят.

Вангую... Ты не верно сделал те скрипты...

рони 10.11.2015 14:41

вангую on

goooooch 10.11.2015 14:52

Господа, я вашей фени типа "вангую" не понимаю. Вы друг другу шлите сообщения такие. Я понимаю, что карма у обоих зашкаливает и вы тут самые авторитетные, но мне бы что-то более конструктивное хотелось прочесть.
Цитата:

Но если смотреть html-код всей страницы (в том же Хроме), то div#content в нем нет!
Например, почему так?

goooooch 10.11.2015 15:00

То, что прилетает после аякс-запроса "в страницу":

<button id="add_to_basket_button" data-id="469" data-quantity="3.8">
          <i class="fa fa-shopping-cart"></i> В корзину!
</button>


ниже по коду js:

<script>
$('#add_to_basket_button').click(function(){   
	alert('p!');     
 });
</script>

ksa 10.11.2015 15:03

Цитата:

Сообщение от goooooch
я вашей фени типа "вангую" не понимаю

А ты думаешь мы понимаем по твоему "описанию проблемы" чего у тебя там и как? :)

А "вангую" пошло от Ванги. Она ведь все знала даже по фотографии... :D
Цитата:

Сообщение от goooooch
Например, почему так?

Потому как "html-код" это то, что пришло на клиент от сервера. от
<html>

до
</html>

Твой контент появляется уже потом и в том "тексте" его нет.
Это норма. (с) :)

ksa 10.11.2015 15:05

Цитата:

Сообщение от goooooch
ниже по коду js:

Ты этот "код" можешь ставить в любом месте... Но на странице на тот момент просто нет такого элемента.
Тебе нужно использовать делегирование.

рони - твая победила. :yes:

рони 10.11.2015 15:14

goooooch,
$('body').on('click','#add_to_basket_button',function(){
	alert('p!');
 });

если конечно вы правильно используите id
если это не так
то
$('body').on('click','[id="add_to_basket_button"]',function(){
	alert('p!');
 });

но лучше тогда отказатся от id в пользу class

goooooch 10.11.2015 15:38

рони,
Не совсем понял почему не работает с .click, но .on действительно решает проблему... Спасибо.

рони 10.11.2015 15:45

goooooch,
потому что вы вешаите клик на то чего нет
Цитата:

Сообщение от ksa
делегирование.

элемент который всегда есть или просто родитель внутри которого происходит событие -- кликнули событие всплыло до родителя -- проверили кто послал - если нужный нам селектор в источнике есть запускаем обработку.
Делегирование


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