3

Valumのファイルアップロードスクリプト(http://valums.com/ajax-upload/)を使用して、ファイルのアップロードを許可するリンクを作成しようとしています。

jQueryライブラリを使用しています。

標準のドキュメントを使用してページ上の1つのリンクを機能させるのは簡単ですが、特定の要素に静的に割り当てるのではなく、特定のクラスのすべてのリンクをキャッチできるようにしたいと思います。

さらに、私のサイトはAjaxページロードを使用しているため、アップローダーを新しいAjaxロードコンテンツに何らかの方法で割り当てることができる必要があります。

想定される使用法は、Ajaxがロードされたページでこのようなリンクを作成し、アップローダーをトリガーできるようにすることです。

<a href="#" class="uploader">Upload a file</a>

私の最初の考えは、jQueryのlive()メソッドを使用してクラスをバインドしようとすることですが、トリガーするのに適したイベントが見つかりません。

誰かがこの種の問題を経験したことがありますか?

4

1 に答える 1

0

<input type="file">いいえ、残念ながら、それはそれほど簡単ではありません。いくつかのセキュリティ上の問題があるため、IE(IE9でも!)では、この要素を「いじくりまわす」とフォームを組み合わせることはできません。「クリック」、「変更」、またはその他のイベントが人為的に発生した場合です。

したがって、このプラグインの動作は異なります。ユーザーのクリックをその場で作成されたfileinput要素に「再ルーティング」するイベントハンドラーを作成する代わりに、ラッパー構造がターゲットとして指定されたリンクの周りに作成されます-そしてfileinputはそこに挿入され、ユーザーが見ることができないように十分に非表示になりますそれ-しかし、ブラウザがクリックを登録するには十分です(詳細については、ソースコードとこの記事でこのメソッドを確認してください)。

つまり、ここではイベント処理の委任を使用できません。唯一の賢明な方法は、新しく作成された要素をそのプラグインでラップすることです。

于 2012-12-24T18:12:51.173 に答える