Istnieje co najmniej jeden sposób, ale nie jest to bardzo dobry. można po prostu sondowanie element zmian, takich jak ten:
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);
Norma określa również mutation events DOM, ale nigdy nie miałem okazję z nich korzystać, a nie jestem pewien, jak dobrze są one obsługiwane. Można by wykorzystać je tak:
target.addEventListener('DOMAttrModified', function()
{
if (e.attrName == 'style') {
alert('style changed');
}
}, false);
Ten kod jest wyłączony mojej głowie, więc nie jestem pewien, czy by to działało.
Najprostszym i najłatwiejszym rozwiązaniem byłoby wywołanie zwrotne w funkcji wyświetlania celu.
Czy ta odpowiedź pomaga? http://stackoverflow.com/questions/1397251/event-detect-when-css-property-changed-using-jquery#answer-1397500 – kangax
@kangax, dziękuję. Ale ponieważ nie jest to powszechnie stosowane, myślę, że zamierzam zarysować cały pomysł słuchacza zdarzeń i pójść inną drogą. –
Zobacz tę odpowiedź dla implementacji zdarzenia "onVisible" w JavaScript: http://stackoverflow.com/a/3807340/975097 –