2010-12-12 2 views
5

jQuery UIソースライブラリには、マウスとキーボードのイベントをシミュレートするためのjquery.simulate.jsファイルが含まれています。 jQueryのUIをテストするときにjQuery event methodsを使用する代わりに、そのシミュレーション関数を使用する利点は何ですか?jquery.simulate.jsとjQueryイベントメソッドの違いは?

+0

Zardoz、jqueryイベントメソッドはすべて基本的に必要なものを持っているかもしれませんが、プラグインはもっと高度なものを持っているかもしれません。 – kobe

+0

もし自分で何かできないのであれば、他の誰かがあなたのためにそれをしてくれたら、あなたは行くことができます...プラグイン – kobe

+0

@gov ...そこには何も進んでいません。両方とも同じ出来事を引き起こすと私は思えます。多分、jQuery UIチームの誰かが、この質問に答えようとしています。 – Zardoz

答えて

4

ファイルjquery.simulate.jsは、イベントをシミュレートするためにのみ使用されます.jQueryのような完全なイベント管理システムは提供していません。これは、偽のイベントオブジェクトを作成し、このイベントをDOMに送信することを意味します。これはjQueryの.trigger()メソッドと似ています。

しかし、イベントオブジェクトには、バブルかどうか、ソース要素の内容、特殊キーが押されたかどうか、マウスがクリックされた正確なxとyの位置など、多くのプロパティが変更可能です、 等々。私たちが.trigger()と呼ぶとき、jQueryはこれを必要としないプロパティにデフォルト値を設定することで隠します。一方、jquery.simulate.jsのテスト(ファイルが "jquery-ui/tests /"の下にあることに注意してください)のために設計されています。テスト目的のために、実際のユーザーのやりとりをよりよく模倣するために、イベントオブジェクトに対するより細かい制御を望むでしょう。

短い話ですが、テストをしていない限り、おそらくjquery.simulate.jsは必要ありません。たとえそれが提供する機能のいくつかが必要であっても、そのファイルは公式にjquery-uiライブラリの一部ではないことに注意してください。

+1

-1を入れてください。あなたはここで非常に重要な点を忘れてしまった。 .trigger()は、キーボードイベントのイベントハンドラ(存在する場合)のみを呼び出し、実際のキーボードイベントがトリガされます。たとえば、要素の最後の文字が削除されるようなバックスペースキーボードイベントをトリガする必要がある場合、keyCode = 8が動作しないイベントのkeypress/keydown/keyupをトリガリングします。このjquery.simulate.jsを使用すると、this.https://github.com/j-ulrich/jquery-simulate-extがthsi libに構築されます。 –

+0

.trigger()を使用して実際のキーを押すことができるかどうかを確認してください。私は同じものを実装する必要があります。 –