2011-12-14 3 views
2

У меня есть требование, так как я буду динамически получать набор div, имеющих случайный идентификатор от моего веб-сервиса. И как только он добавлен в мой html, я хотел бы привязать некоторые события к идентификатору. теперь моя проблема заключается в том, что я привязываю событие, используя цикл для массива ID, когда область действия цикла заканчивается.jQuery привязка к событиям в реальном времени

например:

var arrID={'1','2','3'}; 
for(var d in arr) 
{ 
    arrID.live("click",function() {}); 
} 

//scope of for loop finishes here, hence the scope of click also. 

Как преодолеть эту проблему? Благодарю.

ответ

3

Вы не можете привязать событие click к объекту JavaScript. Он должен быть связан с объектом JQuery DOM. Попробуйте следующее:

var arrID=['1','2','3']; 

$.each(arrID, function(index, value) { 
    $('#' + value).live('click',function(){ 
     // Do something 
    }); 
}); 

Настоящая рабочая демонстрация. Уведомление только первые 3 созданные дивы имеют связанное событие: http://jsfiddle.net/FxwpC/

1

Вы, наверное, хотите что-то вроде этого:

$("#my-id-name-" +d).live("click", function() { 
    $(this).doSomeThing(); 
}); 
+0

Да и просто добавить хэш в начале селектора –

0
var arrID=['1','2','3']; 
for(var d in arrID) 
{ 
    $("#"+d).live("click",function() {}); 
}