2

このリンクEvent.Typeを参照することで、私scriptは特定のニーズのために呼び出されたプロパティを採用しましたが、それはで正常に機能しましたIE9。その後、作りながら、compatibility testで動作していないことがわかりましたMozilla FireFox。さらに、とで問題なく動作していGoogle ChromeますSafari

デモ

これを解決するための手がかりはありますか?またはjqueryで置き換えるために利用できるalernateの方法はありますEvent.Typeか?

4

2 に答える 2

1

ほとんどの一般的なブラウザでは、オブジェクトはグローバルに定義されているため、ハンドラーeventのスコープ内で使用できます。loadただし、Firefoxでは、eventオブジェクトはグローバルに定義されておらず、エラーReferenceError: event is not definedが返されます(Ctrl+Shift+JFirefoxの場合はエラーコンソールを取得するために使用します)。

質問へのコメントが示唆しているように、ベストプラクティスは、次のeventようにオブジェクトをハンドラー関数に渡すことです。

$(document).ready(function() { 
    $(window).load(function(event){ alert(event.type); }); 
});
于 2013-01-15T10:48:53.430 に答える
0

ここで私がしたこと; アイデアは、event変数を内部関数コードに渡すことです。例

var load = function(){
        var output = document.getElementById('preview');
        output.src = URL.createObjectURL(event.target.files[0]);
}

次に、代わりに、次のようなoncHangeイベントをリッスンします。

 //passing the event varible along inside ,,this might work on chorme 
 //without passing events but not in firefox and now fixed!!

$( "#uploadBtn" ).change(function(event) {
        var output = document.getElementById('preview');
        output.src = URL.createObjectURL(event.target.files[0]);
      });
于 2015-01-16T07:44:39.133 に答える