しばらく前に私はwanted his textarea to growの誰かの問題を解決しました。私は領域のscroll
とkeyup
イベントを待ち受け、行数を再計算する関数を作った。別のプロジェクトでコードを使用したかったのですが、問題があります。この問題を解決するには、bind
の代わりにlive
を使用しているので、将来の領域もバインドされます。Live()でscrollイベントをバインドする方法は?
今私は、live
がbind
よりずっと遅く実行されることを発見しました。私はa simplified example on jsFiddleを作成しました。上部のテキストエリアは、私が望むように動作しますが、新しく追加されたテキストエリアは遅れてのシグナリングによってちらつきます(私はChromeを使用しています)。
bind
と同じ速さでlive
を作成するにはどうすればよいですか?
scroll
はlive
ステートメントでは使用できません。 live
にscroll
を有効にする方法はありますか?新しいTextAreaが追加されたことを伝えてくれるjQueryイベントがあるので、バインドを使用して新しく作成した要素にscroll
を追加できますか?
私はあなたのアイデアを楽しみにしています。
EDIT:コードへのリンクが変更されました。削除されたscrollingCode。別のテキストエリアを作成するためのボタンを追加しました。問題は「スクロール」と関係があります。それは発砲しない。
説明:私はどの機能がテキストエリアを作成するのか分かりません。動的に追加されたボックスには、のChromeが点滅しています。将来の読者のために
:click, dblclick, keydown, keypress, keyup, mousedown, mousemove, mouseout, mouseover, and mouseup
:jQueryの1.3.xので
はJavaScriptのみのイベント( カスタムイベントに加えて)次 は .live()で結合することができます。 .live()メソッド は、jQuery 1.4の として、カスタムイベントだけでなく、すべての JavaScriptイベントをサポートしています。 現在jQuery 1.4.1でもフォーカスとぼかし作業 ライブ(詳細 へのマッピング、適切な、バブリング、イベントfocusin とフォーカスアウト)。 jQuery 1.4.1以降、 ホバーイベントを指定することができます( をmouseenterとmouseleaveにマッピングします。 はmouseoverにマッピングされ、 mouseoutにマッピングされます)。
@Pointyええ、それは本当です。だから、私はそれがスクロールできないほど大きくなるようなテキストエリアを作っています。ユーザーが新しいデータを入力し、キーアップの前に起動すると、私はたった今軽くスクロールします。この例からスクロールを試してみてください。スムーズに行かないことがわかります。 –
@Keesはい私はそれを再生した後にそれを参照してください。 「静的な」テキストエリアに入力しようとするとjsFiddleがブラウザをハングし、追加されたテキストエリアを入力するとうまく動作します。一つのこと:コードが拡大/縮小ループで "scrollTop(0)"を呼び出すのはなぜですか? – Pointy
@Pointy elem.scrollTop(0);削除することができます:-)。それは私が試していたものからのものです:P。 –