私は最初のファイル アップローダー jquery プラグインを作成しています (coffeescript で):
$.fn.uploadable = (opts={}) ->
console.log $(@).attr('type') # undefined
event = if $(@).attr('type') is 'file' then 'change' else 'drop'
@
.on event, (evt) ->
# do something
off
.on 'dragover', (evt) -> off
$('#files_input, #drop_zone').uploadable
ご覧のとおり、最初の .on() で、イベントの要素がファイル参照ボタンであるかどうかを判断しています。YES の場合、この要素は、ユーザーがファイルを選択したときに「変更」イベントをリッスンします。 、いいえの場合、それはHTML5のドラッグアンドドロップアクション用の単純な古いdivまたは何かであると想定します。
したがって、1 つの INPUT 要素と 1 つの DIV 要素でプラグインを使用しています。私のconsole.logからわかるように、「未定義」が記録されました
これまでのところ、attr() のようなメソッドを呼び出すと、リストされたセレクターの要素の 1 つからのみ結果が得られることしかわかりません。しかし、一致した要素ごとに .on(event) のイベント変数を個別に設定する必要があります。これどうやってするの?
ありがとうございました