- JavaScript
- 2024-08-27
onchange
イベントはform
要素のinput
ではないdiv
等の要素では検知することが出来ません。
そんな時はどうすれば良いでしょうか?その方法をご紹介します。
MutationEvent ※非推奨
そんな時、以前はこんな方法がありました。
※サンプルコードではjQueryを使用しています。
サンプルのHTML
<input type="button" id="click_me" value="Click!"> <div id="sample"></div>
DOMSubtreeModified propertychange
イベントを使って変更を検知する
$(document).ready(function() { $('#sample').on('DOMSubtreeModified propertychange', function() { alert('Change!'); }); $('#click_me').click(function() { $('#sample').text('Change!'); }); });
しかしながら上記のMutationEvent
は非推奨となっています。
現在は代わりにMutationObserver
を使って同様のことが出来るようになっています。