2011-01-18 6 views
0

私の質問がされています。この場合には、多くのidのjQueryのは、多くのIDに同じイベントを添付

にイベントの同じシリーズを接続するためにどのように私は、このコードのすべてを添付していますが「#employeeBox」

$("#employeeBox").autocomplete({ 
           source: function (request, response) { 
            $.ajax({ 
             url: '<%:ResolveUrl("~/Lookup/SearchEnterpriseUsers")%>', 
             dataType: "json", 
             data: { 
              featureClass: "P", 
              style: "full", 
              maxRows: 12, 
              nameLike: request.term 
             }, 
             success: function (data) { 
              response($.map(data, function (item) { 
               return { 
                label: item.FullName, 
                value: item.EmployeeId 
               } 
              })) 
             } 
            }) 
           }, 
           minLength: 2, 
           select: function (event, ui) { 
            alert(ui.item.value) 
           }, 
           open: function() { 
            $(this).removeClass("ui-corner-all").addClass("ui-corner-top"); 
           }, 
           close: function() { 
            $(this).removeClass("ui-corner-top").addClass("ui-corner-all"); 
           } 
          }); 

多くのIDに添付したい場合はどうすればいいですか?

for (int i=0; i < count; i++) 
"#employee_" + i + "_Box" 

と同様に繰り返し多くのコードなしでこれを行うための最善の方法は何ですか?

ありがとうございました!

答えて

4

可能であれば、すべての要素にクラスを追加して、そのクラスにイベントを添付してください。

$('.myClass').live('myevent', function(e) { //some function }); 
+0

OPがいくつかの要素に 'autocomplete'プラグインを添付する方法を尋ねているようです。 'live()'メソッドはこれを本当に助けることはできません。 – user113716

+0

あなたのすべての要素をクラスにイベントに結び付けるという考え方は変わりません。この特定の場合は、 'load'イベントにアタッチする必要があります。 – Jason

+0

残念なことに.live()はここでは使用できません。なぜなら 'load'イベントはバブルしないからです。ここにjQueryのチームの説明があります:http://bugs.jquery.com/ticket/7702 –

3

employeeBoxのすべてのクラスを指定した場合は、$( '。employeeBox')。autocomplete()を実行できます。

関連する問題