数値しか入らないテキストフィールドにJavaScriptで入力支援する場合はどうすれば良いのでしょうか。プルダウンで選ばせるのが一般的だと思いますが、数値の範囲が広くなると大変です。他にも自由入力にして数値以外を禁止する、スピンボタンを実装する、などあると思いますが、今回はマウスの上下移動で増減する仕組みを作ってみました。実行結果テキストフィールド上でマウスのボタンを押して上下に移動すると数値が増減します。移動距離が大きいほど増減量が多くなります。{・・・});テキストフィールド上でマウスが押されたときに以下全ての処理を行っています。'n-resize');まずカーソルの形を上下の矢印にします。0;syにはマウスが押されたときのY座標が入ります。vyには数値の増減量がはいります。40);タイマイベントを40ms毎で呼び出すように設定しています。中身は、テキストフィールドの数値に増減量であるvyを足しているだけです。{マウスが移動したときのイベントを設定しなければ当然数値の増減はできないわけですが、テキストフィールド$('#updown')に対してイベントを設定するとテキストフィールドから外れたときの移動量を感知できなくなるので使い勝手が悪くなります。そこで、ドキュメント全体に対してイベントを設定するのですが、マウスが離されたときにイベントを指定して削除したいので名前空間を付加しています。イベントmousemoveの後ろに付いている「updown」が名前空間です。10);マウスが移動したときのイベントの中身は、現在のマウスの位置から開始位置を引いて数値の増減量を算出しています。{こちらはマウスボタンが離されたときのイベントを設定しています。oneメソッドを使うとイベントを一度だけ実行することができます。'auto');まずマウスを元の形に戻し、$(document).off('mousemove.updown');マウスが移動したときのイベントを削除しています。ここでマウスが移動したときに付加した名前空間を参照しています。clearInterval(id);最後にタイマイベントもクリアします。注意点マウスのボタンを押したままブラウザの外に出た場合、IEだとイベントを感知できませんが、修正が面倒なのでそのままで・・・すみませんです。