HTMLタグの内容がいつ変更されたかを判断する方法はありますか?ポーリングするよりも、イベントをキャッチしたいです。
私のユースケースは、リッチテキストエディター内でスパンタグで囲まれたテキストがあり、囲んでいるテキストがユーザーによって変更されたときにスパンタグを削除する必要がある場合です。
HTMLタグの内容がいつ変更されたかを判断する方法はありますか?ポーリングするよりも、イベントをキャッチしたいです。
私のユースケースは、リッチテキストエディター内でスパンタグで囲まれたテキストがあり、囲んでいるテキストがユーザーによって変更されたときにスパンタグを削除する必要がある場合です。
典型的な WYSIWYG エディターの 1 つを使用していて、そのコードを更新して更新可能性を壊したくありませんか? 次に、WYSIWYG エディターが送信する onTextChange イベント (または同様のもの) をリッスンし、変更の内容を確認して、それに対応することができます。
質問の情報が少なすぎることを考えると、単なるアイデアです。
(入力要素を除いて)利用可能なイベントはないと思いますが、ポーリングすることはできます。
$element = $('#my-element');
var originalHtml = $element.html();
var pollHtml = setInterval(function() {
if (originalHtml !== $element.html()) {
alert('HTML changed!');
clearInterval(pollHtml);
};
}, 100);
コメントを追加できないので、ここに提案を入れます。
@ジャスティンジョンソン
$("#close-question-2114317").change(function() {alert(1);});
$("#close-question-2114317").text( function(){
$(this).trigger('change');
return "Close!!!";
});
その場合はトリガーを呼び出すことができると思います...
何らかの方法で DOM を変更するには、JavaScript を使用している必要があります。ほとんどの場合、ポーリングは悪い考えです。HTML の変更をチェックする方法についての良いアイデアを提供するデモをここに用意しました。必要なときにその関数を呼び出すだけです...たとえそれが単なるポーリングであっても。