Как узнать о появлении элемента на страницы
Здравствуйте!
Подскажите пожалуйста, как узнать о том, что на страницы появился, например, div c определенным id? Вот так не работает: $( "$d" ).on({click: function() { alert('Я здесь))'); } }); |
У этого дива наверное есть событие, вот на него и надо обратить внимание.
Рони, недавно постил вот такой способ https://developer.mozilla.org/ru/doc...tationObserver |
Этот код при любом изменении на страницы должен срабатывать, или нет?
var observer = new MutationObserver(function (mutations) { alert('Я здесь))'); }); |
Цитата:
Цитата:
|
DDim1000,
По идее, надо подписывать на body - тогда все изменения проявятся |
Цитата:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var observer = new MutationObserver(function(mutations) { if(document.querySelector("#id")){ alert('Я здесь))'); observer.disconnect(); } }); observer.observe(document.body, {childList: true}); // добавить в body нужный элемент через 3 сек. setTimeout(()=>document.body.insertAdjacentHTML('beforeend', '<div id="id">Hello</div>'), 3000); </script> </body> </html> |
Спасибо!
|
Цитата:
Вот смотрите, если jquery.validate создает вот такой код: <label id="reg_phone-error" class="error" for="reg_phone" style="display: inline;">Укажите номер телефона!</label> Или вот такой код: <label id="reg_phone-error" class="error" for="reg_phone" style="display: inline;">Неверный формат номера телефона!</label> То, все отлично работает! Но, когда генерируется такой же код, только с другим текстом, ни какой реакции нет! <label id="reg_phone-error" class="error" for="reg_phone" style="display: inline;">Пользователь с таким номером уже <br> зарегистрирован!</label> |
не нужно создавать два элемента с одинаковым ID отсюда проблемы.
observer.disconnect(); // снимает наблюдение если вам нужно наблюдать дальше, уберите эту строчку |
Так работает
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var observer = new MutationObserver(function(mutations) { if(document.querySelector("#reg_phone-error")){ alert('Я здесь))'); observer.disconnect(); } }); observer.observe(document.body, {childList: true}); // добавить в body нужный элемент через 3 сек. setTimeout(()=>document.body.insertAdjacentHTML('beforeend', '<label id="reg_phone-error" class="error" for="reg_phone" style="display: inline;">Неверный формат номера телефона!</label>'), 3000); </script> </body> </html> И так работает <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var observer = new MutationObserver(function(mutations) { if(document.querySelector("#reg_phone-error")){ alert('Я здесь))'); observer.disconnect(); } }); observer.observe(document.body, {childList: true}); // добавить в body нужный элемент через 3 сек. setTimeout(()=>document.body.insertAdjacentHTML('beforeend', '<label id="reg_phone-error" class="error" for="reg_phone" style="display: inline;">Пользователь с таким номером уже <br> зарегистрирован!</label>'), 3000); </script> </body> </html> Или вы создаете ЕЩЕ один лейбл? Тогда j0hnik прав |
Часовой пояс GMT +3, время: 00:23. |