JavascriptMutationObserver
を使用して要素の状態の変化に関する情報を取得し、変更前の要素の状態を取得してから、現在の状態を確認し、それに基づいて決定を下そうとしています。
基本的に私はonVisibilityChanged
イベントを実装しようとしています。
気になる要素の変更をキャプチャしてから、それらが表示されているかどうかを確認します。次に、可視性がブロードキャストされたものと異なる場合visibilityChanged
。
発生した変更を取得しているため、要素のクローンを作成し(MutationEvent[0].target
)、すべての変更を元に戻して、クローンが表示されているかどうかを確認できますが、これは「ハッキー」で非効率的に聞こえるので、方法があるのではないかと考えていました突然変異が起こる直前に要素をキャプチャする。すべての変更が発生した後に解雇されるので、それはロングショットでMutationObserver
あり、時間旅行のようなものであることは理解していますが、私はすべてあなたの提案に耳を傾けています.
var observer = new MutationObserver(function(mutations) {
var itemFromThePast = mutations[0].MagicTimeMachine().GetMeTheItemBeforeItWasChanged; // this is the line that is missing
if ($(itemFromThePast).is(":visible") != $(mutations[0].target).is(":visible"))
{
console.log('I win!');
}
});
var targets = $('.ui-collapsible-content');
$.each(targets, function(i,target){
observer.observe(target, { attributes: true, childList: false, characterData : true, characterDataOldValue : true });
});