jQueryのchangeメソッドが効かない!
input type="file"に画像を入れたときのイベントをとりたかったので軽い気持ちでchangeメソッドを使ったら効かなかった・・
jquery.js
$("input[type='file']").change(function() {
});
## 解決策
jquery.js
$(document).on('change', 'input[type="file"]', function() {
});
onメソッドを使ってchangeのイベントをとる
changeメソッドと.on('change')の違い
changeメソッドは元々のHTML要素に対して有効
on('change', '子要素')はjavascriptで変更された後のHTMLにも有効
理由
onメソッドでchangeを指定してあげたほうが便利くらいの認識だったが、今回はonとclickメソッドの違いによってイベントがとることができなかった。
今回はこの記述の前にページを読み込んだ時にjQueryの記述によってHTMLを編集していたので、変更されたHTMLになり、changeメソッドが効かなかった。