Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Parent DOM не видит подгруженный Child DOM (https://javascript.ru/forum/dom-window/73707-parent-dom-ne-vidit-podgruzhennyjj-child-dom.html)

alixan23 08.05.2018 13:53

Parent DOM не видит подгруженный Child DOM
 
Доброго времени суток уважаемые форумчане.


Есть html страничка с примесями jquery. Внутри html есть кнопочка. При нажатии на кнопочку происходит load() дополнительного контента (таблички, интупы, селекты и т.д.).

Всё работает хорошо.

Но parent jquery не видит подгруженный контент. Иными словами, старый DOM не воспринимает новый DOM.


Пожалуйста подскажите, каким путём инклудить, лоадить новый DOM во внуть старого?

Может, у кого есть мысли, идейки?

Заранее всем большое Спасибо за любое участие.

alixan23 08.05.2018 13:56

Небольшое уточнение.

load() - происходит нормально. Т.е. контент нормально добавляется на страничку.

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

Nexus 08.05.2018 14:03

alixan23, код, который подгружает контент и который пытается взаимодействовать с уже подгруженным контентом приведите.

ps. скорее всего вы пытаетесь взаимодействовать с еще не загруженным контентом.

alixan23 08.05.2018 14:20

Parent html
<div id='block1'><button id='btn1'>Click for load</button></div>
<div id='block2'></div>



Jquery
$("#btn1").on("click", function()
{
	$("#block2").load("somepage.html");
}

$("#btn2").on("click", function()
{
	alert("yes");

});



somepage.html
<button id='btn2'>Alert</button>


При этом, вторая кнопочка появляется

alixan23 08.05.2018 14:22

Может проблема в специфики
.on("click",
?

Nexus 08.05.2018 14:26

Цитата:

Сообщение от Nexus
вы пытаетесь взаимодействовать с еще не загруженным контентом

$("#btn1").on("click", function() {
    $("#block2").load("somepage.html", function() {
        $("#btn2").on("click", function() {
            alert("yes");

        });
    });
});

alixan23 08.05.2018 14:34

Работает ))

Большое Спасибо!

рони 08.05.2018 15:58

alixan23,
клик ставят на block2, на то что есть всегда, а не на btn2, называется делегирование, половина тем на форуме про ajax про это!!!


$(function() {
  $("#btn1").on("click", function() {
    $("#block2").load("somepage.html");
  });
  $("#block2").on("click", "#btn2", function() {
    alert("yes");
  });
});

j0hnik 08.05.2018 17:16

можно так
$("#btn1").on("click", function(){
	$("#block2").load("somepage.html");
});

somepage.html
<button id='btn2'>Alert</button>
<script>
$("#btn2").on("click", function(){
	alert("yes");
});
</script>


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