Wenn ich habe Sie richtig verstanden Sie müssen überprüfen, ob dom Element wurden aktualisiert/mit neuen Elementen bestückt. Es gibt ein paar Möglichkeiten, wie Sie das erreichen können:
1.) Mit window.setTimeout Funktion
function checkForChanges() {
var observeThis = document.getElementById('observethis');
if (observeThis.hasChildNodes()) {
alert('yes');
return;
/*this is gonna execute only once */
}
window.setTimeout(function() {
checkForChanges();
}, 25);
}
checkForChanges();
/* this part is only relevant for demonstration.
It shows what happens when dom element gets new child */
(function() {
var observeThis = document.getElementById('observethis');
var button = document.getElementById('button-append');
button.addEventListener('click', function() {
var anchorElement = document.createElement('a');
anchorElement.href = "http://example.com";
anchorElement.target = "_blank";
anchorElement.innerHTML = "Link";
observeThis.appendChild(anchorElement);
}, false);
})();
<div id="observethis"></div>
<button id="button-append">append anchor</button>
2.) MutationObserver Klasse
dieses moderne Ansatz (I würde auch empfehlen, eins).
function checkForChanges() {
var observeThis = document.getElementById('observethis');
// create an observer instance
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'childList') {
alert("insert your own code");
}
});
});
var config = {
attributes: true,
childList: true,
characterData: true
};
observer.observe(observeThis, config);
//observer.disconnect();
//use observer.disconnect to end observations
}
checkForChanges();
/* this part is only relevant for demonstration.
It shows what happens when dom element gets new child */
(function() {
var observeThis = document.getElementById('observethis');
var button = document.getElementById('button-append');
button.addEventListener('click', function() {
var anchorElement = document.createElement('a');
anchorElement.href = "http://example.com";
anchorElement.target = "_blank";
anchorElement.innerHTML = "Link";
observeThis.appendChild(anchorElement);
}, false);
})();
<div id="observethis"></div>
<button id="button-append">Append Child</button>
Lesen Sie mehr über MutationObserver
here
3.) Wenn Sie nur warten auf eine Antwort von Ajax-Rückruf zu bekommen und eigentlich nicht brauchen Änderungen in dom zu beobachten, dann nur XMLHttpRequest verwenden. Oder noch besser. Verwenden Sie neue Javascript fetch API (Sie sind Gonna Notwendigkeit polyfill zu gewährleisten, ist es in den meisten Browsern)
Sie Ihre Java-Script-Funktion unter der HTML-Steuerelement setzen können dann die Kontrolle zuerst geladen dann Ihre Java-Script-Funktion wird ausgeführt –
Sind Sie asynchrone XMLHttpRequest mit ? – alfadog67
Bitte bearbeiten Sie Ihre Frage, um ein Beispiel für die Struktur und das Skript, das die Struktur auffüllt, einzufügen. –