Electron - невозможно использовать Js / Events / JQuery после загрузки Html.

MainHtml:

    <head>
    </head>
    <header >
    </header>
    <body>
        <div id="x1y1"></div> // Load contents dynamically here
        <script src="All scripts one by one"></script>
     </body>

Электронное окно при загрузке [Главное окно уже загрузило указанный выше html]

onload = $(function(){
     $('#ElementLoadedOnload').click()...etc tc;
     $('#ElementLoadedDynamicallyIn_x1y1_div').click()...etc tc;
});

Поэтому, когда электрон загружает html, в jquery можно использовать только исходный загруженный html и элементы. Когда я загружаю html динамически с помощью JQuery в теге x1y1, $('#ElementLoadedDynamicallyIn_x1y1_div').click() не работает, поэтому мне нужно включить onclick="FunctionName()" для каждого элемента в самом html, который работает. Что я здесь делаю не так? ... или это возможно по-другому.


person Makjb lh    schedule 22.04.2017    source источник


Ответы (1)


Вам нужно использовать метод on

$( "body" ).on( "click", '#ElementLoadedDynamicallyIn_x1y1_div' , function() {
    //Do what you want to do
}); 
person Agam Banga    schedule 22.04.2017
comment
Почему так, что уже загруженные элементы не отвечают, а динамический HTML - нет? это мое главное любопытство - person Makjb lh; 22.04.2017
comment
На динамических элементах прямая привязка не работает, поэтому вам нужно добавить метод on для прослушивания всех событий. - person Agam Banga; 22.04.2017
comment
Есть ли лучший способ сделать прямую привязку для динамических элементов с помощью любых методов Dom или самого JQ? - person Makjb lh; 22.04.2017
comment
По моему опыту, это лучший способ динамически привязать события к элементам. Также чисто и понятно - person Agam Banga; 22.04.2017