ノードの子が削除または追加されたときの変更をリッスンする方法が必要です。新しいアイテムが追加されたときに要素を一番下までスクロールする自動スクロール プラグインを作成しました。私が聞いているイベントはDOMNodeInserted
andDOMNodeRemoved
です。
と のポリフィルを探していましDOMNodeInserted
たDOMNodeRemoved
。周りを見回しても、すでに存在しているものは見つかりませんでした。このイベントはすべてのブラウザーでサポートされているわけではなく、現在は推奨されていません。簡単に作成した単純な (単純な可能性が高い) ポリフィルがありますが、うまく機能するとは思えません。
これらのイベントが非推奨であることは知っていますが、要素の子の変更をリッスンするより良い方法はありますか?
(function() {
var works = false;
var $test = document.createElement("div");
var $testchild = document.createElement("a");
$test.addEventListener("DOMNodeInserted", function() {
works = true;
}, false);
$test.appendChild($testchild);
if(!works) {
var nodeproto = Node.prototype;
var nativeAppend = nodeproto.appendChild;
var nativeRemove = nodeproto.removeChild;
nodeproto.appendChild = function() {
nativeAppend.apply(this, arguments);
this.fireEvent("DOMNodeInserted");
};
nodeproto.removeChild = function() {
nativeRemove.apply(this, arguments);
this.fireEvent("DOMNodeRemoved");
};
}
})();