Es gibt mindestens eine Art und Weise, aber es ist nicht sehr gut. Sie könnten nur das Element für Änderungen wie diese Umfrage:
var previous_style,
poll = window.setInterval(function()
{
var current_style = document.getElementById('target').style.display;
if (previous_style != current_style) {
alert('style changed');
window.clearInterval(poll);
} else {
previous_style = current_style;
}
}, 100);
Der DOM-Standard spezifiziert auch mutation events, aber ich hatte nie die Chance, sie zu benutzen, und ich bin nicht sicher, wie gut sie unterstützt sind. Sie würden sie wie folgt verwenden:
target.addEventListener('DOMAttrModified', function()
{
if (e.attrName == 'style') {
alert('style changed');
}
}, false);
Dieser Code aus der Spitze von meinem Kopf, so dass ich bin mir nicht sicher, ob es funktionieren würde.
Die beste und einfachste Lösung wäre, einen Rückruf in der Funktion zur Anzeige Ihres Ziels zu haben.
Hilft diese Antwort? http://stackoverflow.com/questions/1397251/event-detect-when-css-property-changed-using-jquery#answer-1397500 – kangax
@ Kangax, danke. Aber da es nicht weit verbreitet ist, denke ich, dass ich die ganze Event-Hörer-Idee zerkratzen werde und einen anderen Weg gehen werde. –
Finden Sie diese Antwort für eine Implementierung eines "onVisible" -Ereignisses in JavaScript: http://Stackoverflow.com/a/3807340/975097 –