2011-08-03 8 views
0

入力タイプのファイルボックスで変更イベントをトリガーしようとしています。 このボックスは、ファイルがアップロードされるたびに、ajaxによって生成されます。これは私の機能です。InternetExplorer <9.0でAJAXで生成された入力タイプファイルのライブ変更()

jQuery("#file1").live('change', function(){ 
    jQuery('.pic_upload').fadeIn(); 
}); 

これはIe 9.0を含むすべてのブラウザで機能します。 IE < 9.0では、変更イベントが適切にトリガされません。だから私はこの機能を持っている:これはIEでしか最初のINOUTタイプのファイルタグのために、良い作品

jQuery("#file1").bind((jQuery.browser.msie && jQuery.browser.version < 9) ? 'propertychange' : 'change', 
           function(){ 
            jQuery('.pic_upload').show(); 
        }); 

。最初のアップロードが完了した後、この入力フィールドが非表示になり、新しい入力フィールドが表示されます。それが理由です。なぜ私はbind()の代わりにlive()が必要です。

問題:Internet Explorerでは動作しないため、live()は使用できません。私はbind()も使用できません。なぜなら、これは非Ajaxで生成されたアップロードボックスに対してのみ機能するからです。

この問題の回避策はありますか?

答えて

0

考えられるのは、.bind()を関数にラップし、ajax呼び出しの完了後に関数を呼び出すことです。

関連する問題