Die kurze Antwort ist für jQuerychange
-Event NO,
Dieses Ereignis ist begrenzt auf Eingang Elemente, TextArea- Boxen und Elemente auswählen. Für Auswahlfelder, Kontrollkästchen und Optionsfelder wird das Ereignis sofort ausgelöst, wenn der Benutzer eine Auswahl mit der Maus trifft. Bei den anderen Elementtypen wird das Ereignis jedoch so lange zurückgestellt, bis das Element den Fokus verliert. ... hier ein Link zur Dokumentation ist https://api.jquery.com/change/
Aber mit so etwas wie die MutationsObserver
hier dem Link zur MDN Referenz https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver, könnten Sie für Veränderungen in dem DOM beobachten. In Ihrem speziellen Fall ist das span
in Frage.
Hier ein kurzes Beispiel (angepasst von MDN Referenz)
Im Beispiel der span
Änderung mit einem setTimeout
simuliert
// select the target node
var target = document.getElementById('user-location');
// create an observer instance
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.info("EVENT TRIGGERT " + mutation.target.id);
});
});
// configuration of the observer:
var config = { attributes: true, childList: true, characterData: true };
// pass in the target node, as well as the observer options
observer.observe(target, config);
// simulate the Change of the text value of span
function simulateChange(){
target.innerText = "CHANGE";
}
setTimeout(simulateChange, 2000);
<span id="user-location"></span>
mit jQuery Sie könnten tun Sie dies:
in diesem Beispiel habe ich eine zweite span
nur um zu zeigen, wie es
// Bind to the DOMSubtreeModified Event
$('.user-location').bind('DOMSubtreeModified', function(e) {
console.info("EVENT TRIGGERT " + e.target.id);
});
// simulating the Change of the text value of span
function simulateChange(){
$('.user-location').each(function(idx, element){
element.innerText = "CHANGED " + idx;
});
}
setTimeout(simulateChange, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<span id="firstSpan" class="user-location">Unchanged 0</span><br/>
<span id="secondSpan" class="user-location">Unchanged 1</span>
Was meinen Sie mit "change"? Wann ändert sich der innerHtml? –
'span' ist kein Eingabeelement, also wird nichts geändert, bis Sie sich geändert haben! S –
Ich möchte nur ein Ereignis, wenn auf Span Text geändert wurde? –