2010-12-28 8 views
2

.onEvent()のように、入力デバイスまたはスクリプトを使用してイベントが発生したかどうかを検出する方法はありますか?イベントが入力デバイスを使用してトリガされたかどうか、または.onEvent()のようにスクリプトを介してトリガされたかどうかを検出する方法はありますか?

+0

originalEventプロパティはあなたを助けてくれましたか、探していた何か他のものがありましたか? – typeof

答えて

4

ショートストーリー、いいえ。

唯一確認できるのは、コールバックハンドラ(「イベントハンドラ」)に渡されるevent objectです。彼の答えで提案されているのタイプのように、イベントがデバイスによってトリガされた場合に設定されないプロパティ(またはその逆)があるかもしれませんが、再び100%信頼できません。例:

$('someinputcontrol').trigger({ 
    type:   'keydown', 
    originalEvent: true 
}); 

このテクニックを使用してイベントオブジェクトに任意のプロパティを追加できます。また、デバイスやスクリプトによってイベントが発生したかどうかを検出する信頼できる方法はありません。

+1

これは面白いです。私はこれに遭遇する可能性は非常に低いと思うでしょう...あなた自身のコードを使って作業しているのであれば、originalEventプロパティを渡さないことで**決して**なることはありません。 – typeof

2

あなたはそれが人工的な出来事だったかどうかを確認するために、イベントハンドラに渡されたイベントオブジェクトを調べることができようになっています

if(event.originalEvent) { 
    ... 
} 

イベントオブジェクトは、プロパティがあればoriginalEventと呼ばれる必要がありますように思えイベントはスクリプトではなく入力デバイスによってトリガーされました。

関連する問題