2011-08-16 11 views
86

ここに私のコードの先頭の抜粋です:私は...基本的に私がやろうとしていることは、いくつかの異なるIDのと同じ呼び出しを行うですjQueryの複数のIDセレクタ

var myUpload = $("#upload_link").upload({bla bla bla 

これはうまくいくと仮定していましたが、そうではありません:

var myUpload = $("#upload_link,#upload_link2,#upload_link3").upload({ 

アイデアをお持ちですか?

+0

使用しているアップロードプラグインは何ですか?推奨されるプラグインの開発パターンに従っていると確信していますか? – bfavaretto

+0

これはうまくいくはずです、 'upload'関数で何かでなければなりません。 http://jsfiddle.net/X7TAX/ – Kokos

答えて

174

を使用することができますクラス与える場合:それが必要

$("#upload_link,#upload_link2,#upload_link3").each(function(){ 
    $(this).upload({ 
     //whateveryouwant 
    }); 
}); 
+2

この回答は間違いなく機能しますが、理想的には、すべての一致する要素に適用する必要があります。 – ShankarSangoli

31

あなたは、これらのインスタンスのそれぞれにあなたがこれを試してみてください

$('.yourClass').upload() 
4

を。通常、これは複数のセレクタを実行する方法です。それ以外の場合は、3つのアップロードの戻り値を同じvarに割り当てようとしたくないかもしれません。

.eachを使用することをお勧めします。または、戻り値をその値に割り当てるのではなく配列にプッシュすることをお勧めします。

0

これで動作するはずです。カンマの後にスペースが必要な場合があります。

また、後で呼び出す関数は、シングルトンオブジェクトだけでなく、オブジェクトの配列をサポートする必要があります。

14

あなたは使用複数idのは、あなたが書いた方法で行うことができます

$('#upload_link, #upload_link2, #upload_link3') 

をしかし、あなたのコードを実行してきたとき、これらのIDは、DOM内に存在することを意味するものではありません。また、uploadが正当な機能であるとは限りません。また、uploadが選択項目の複数の要素を可能にする方法で構築されていることを意味しません。

uploadはカスタムjQueryプラグインですので、お手数ですがuploadさんのお手伝いをさせていただきます。

8

uploadプラグインが一致するすべての要素のロジックを実行するようにthis.eachを実装していることを確認してください。理想的に動作するはずです

$("#upload_link,#upload_link2,#upload_link3").upload(function(){ });