2013-03-03 28 views
5

.trigger()でペーストイベントをトリガーすると、その後にキャプチャされたペーストイベントには、.originalEventプロパティがありません。これは予想される動作ですか?どうして?彼らは手動でトリガされた場合http://jsfiddle.net/2uxEr/手動でトリガされたペーストイベントには、.originalEventプロパティがありません。

<textarea>Paste something here</textarea> 
<button>Click for fake trigger</button> 

$('textarea').on("paste", function(e){ 

    alert(e.hasOwnProperty("originalEvent")); 

}); 

$('button').click(function(){ 

    $('textarea').trigger("paste"); 

}); 

答えて

2

jQueryのイベントはoriginalEvent性質を持っていません -

は、例を参照してください。彼らはどうでしたか? originalEventは、jQueryがイベントオブジェクトを形成するブラウザによって作成されたイベントオブジェクトです。手動でトリガーされたイベントでは、jQueryはイベントオブジェクト自体を作成しました。アクセスするoriginalEventはありません。

This jsFiddle exampleは、clickpasteなどのイベントでこれがどのように成立するかを示しています。

+0

jQueryはネイティブイベントをトリガーしませんか?どのようにそれは次に動作するのですか? – HyShai

+0

@HyShaiブラウザのネイティブイベントがキャッチされるようにイベントリスナーを追加します(https://github.com/jquery/jquery/blob/master/src/event.js#L104)。 jQueryはこのオブジェクトを拡張して機能や使いやすさを追加し、コードに渡します。 – lonesomeday

+0

つまり、.trigger()メソッドを意味します。どのようにイベントを引き起こしますか?トリガされたイベントは、バニラJSによっても認識されます。 – HyShai

関連する問題