2017-01-19 6 views
1

は、私が使用していますは、Android/iOSのネイティブアプリであることをコルドバで包まれたウェブアプリを構築するために反応します。私は、具体的.click()- コルドバ

でファイル入力のクリックをシミュレートすることで、私はこのライブラリを使用しています、特にiOS版とのトラブルを抱えています:ここでhttps://github.com/odysseyscience/react-s3-uploader

は私のコードは、非常に簡単です:

<button onClick={(e) => { e.preventDefault() $('#fileinput').click() }} className='btn btn--no-bg btn--w-icon uploader'>

IDがfileinputの要素は、反応アップローダのレンダリング版ですが、普通のHTML形式で表示されます。

<input type="file" id="fileinput" class="hidden react-s3" accept="image/*">

私はテストの束を行っていると問題が.click() jqueryのイベントで発生しています。最初のonClickが確実に起動されていますが、$('#fileinput').click()が呼び出されると何も起こりません(iOSの場合)。

このコード部分は、Webブラウザと私のアンドロイドシミュレータで動作しますが、もう一度ではありません。私のiOSシミュレータではではありません。

私はすべての3つの環境(デスクトップ、iOSの、アンドロイド)用コンソールに移動し、コンソールのコード$('#fileinput').click()を実行し、入力をクリックすると、写真の選択はアンドロイドとデスクトップ用トリガされますが、上の何もしませんiOS。

アイブ氏は、研究の束を行って、私はいけない仕事を見つけ、いくつかの解決策は以下のとおりです、ボタンや入力のいずれかにpointer: cursorを追加aタグにbuttonを変更し、隠し入力にvisibility: hiddendisplay:noneを変更し、しよう私は見つけることができる.click()のすべての異なるバージョン(vanillaJS、.trigger.touchstart.touchend.liveなど)

+0

の隠し要素のクリックを誘発することができるとは思わない

#fileinput { position:absolute; top:-9999px; } 

').get(0).click()。 jQueryの代わりに、基本的なjs clickメソッドを使用してみてください。 – gaetanoM

答えて

0

は、私は同じ問題を持っていたし、これが働いた:

$('#fileinput').trigger("click"); 

とファイル入力を隠すが、のような画面がそれをオフにCSSいない:私はあなたが$( '#のFileInputクラスを試すことのiOS