スキップしてメイン コンテンツに移動

javascripのinputイベントについて

日常の開発で、<input type="text">DOMのテキスト変更があった場合、よく

changeベントを使っていた。ある開発のきっかけで、inputイベントを知った。

changeベントと比べると、inputイベントのほうがリアルタイム的にイベントが

発生するため、使いやすい。


詳細をみてみよう。


change イベントは”要素の変更が終わったときにトリガされます。”と定義されているが、

わかりにくい。例えば、<input type="text">の要素があるとして、この要素に「12345」の

文字を入力しようとする、①1を入力し終わったときに、イベントがくるのか、それとも②12345を

入力し終わったときなのか?正直よくわからないが、②という人がいるでしょう!どっちも違う。

正しいのが、要素に変更を加え、その要素からカーソルが外れた場合に、トリガーされる。


では、inputイベントについてみてみよ。

inputイベントは”要素の値が変更されるたびにトリガされます。”と定義されている。

これがわかりやすい。つまり、要素の値を変更した場合、即時にイベントが来る。


change イベントとinputイベントを使い分けて、

リアルタイム性を求めない場合、change イベントを使う。

テキストを変更して、そのテキストをプレビューしたいといったリアルタイム性を求める機能なら、

inputイベントを使ったほうがいいでしょう。


コメント

このブログの人気の投稿

gitよく使うコマンド集

よく使うgitのコマンド集をまとめてみた。 1.ローカルリポジトリの登録  #git init 2.gitの状態を確認  #git status 3.gitのファイルを追加  #git add . 4.ローカルのマスタにコミットする  #git commit -m "体温管理アプリの初期化" 5.リモートリポジトリを登録する  #git remote add origin https://github.com/ユーザーID/リポジトリ名  例)git remote add origin https://github.com/githubkyo/taionkanri 6. リモートリポジトリの変更履歴の取得 git fetch origin master 7.差分のあるファイル名を表示 > git diff --name-status ローカルブランチ名 origin/リモートブランチ名 【例】 > git diff --name-status master origin/master 8.リモートのファイルのみをローカルに反映する。 git checkout origin/master --src/Eccube/Resource/template/default/default_frame.twig 9.別ブランチをマスタへマージする git checkout master git merge other_branch 以上で、随時更新していく予定。

MongoDB入門編 その1)

mogoDBについて、勉強しながら、紹介していきます。 1.インストール  https://www.mongodb.com/try/download/communityにアクセスして、Available Downloadsの ところから、ダウンロードして、手順に沿ってインストールする。 2.サービスの起動と停止 起動:sudo service mongodb start 停止:sudo service mongodb stop 3.mongoシェルの起動 #mongo 4.実際に使ってみる。 ・用語  MongoDBとRDBとの比較  -------------------------------------  MongoDB          | RDB  -------------------------------------  データベース     | データベース  -------------------------------------  コレクション     | テーブル  -------------------------------------  ドキュメント     | 行(レコード)  -------------------------------------  フィールド       | 列  -------------------------------------   ・データベースの作成  >use study   switched to db study      これだけで、studyというデータベースができました。     > db.stats() {     "db" : "study",     "collections" : 0,     "objects" : 0,     "avgObjSize" : 0,     "dataSize" : 0,     "stora...