2011-12-05 72 views
0

我創建了一堆Div的基礎上,我從AJAX接收數組中的項目數。所有的div都有一個唯一的ID,我想爲每個生成的Div添加一個Click事件。 我想讓用戶點擊其中一個生成的div,然後發佈一些數據。 這是我使用的代碼,但它不起作用。添加點擊動態生成的div jquery

c=data.length 

      for(i=0;i<c;i++){ 

       $('#result').prepend('<div class="validation" id="lv_'+i+'">'+data[i]+'</div> '); 
       $("#lv_"+i).live('click', function(data){ 
       .$post("setLocation", {lv: lv}, function(data){ 
        alert(data); 
       }); 
      }); 

     } 
+0

使用jQuery 1.7'活()'已被棄用,對使用'()'。雖然這不能解決您的具體問題,但值得研究。 http://api.jquery.com/on/ – Alan

+0

其$ post或$ .post –

+0

酷我不知道,我會調查它 – rzclfy

回答

1

而要對已有的類validation,無論是動態地添加與否的所有div一定的事件處理程序火災,如果您使用的是舊版本你最好使用on

$(document).on("click", ".validation", function() {}); 

jQuery的的,這裏是你會怎麼活做到這一點:

$(".validation").live("click", function() {}); 

或者,比live更好的將是delegate

$(document).delegate(".validation", "click", function() {}); 

爲什麼delegateon優於live的原因是因爲live將通過現有的DOM,以及相關的處理程序附加到所有已發現的元素。 delegateon只需監聽事件冒泡,並在選擇器匹配時觸發處理程序。結果,delegateon更高性能。

+0

謝謝我使用委託 – rzclfy

+0

@rzclfy - 當然可以!如果你使用jQuery 1.7之前的委託, –

0

嘗試:

 
$("#lv_"+i).on("click", {lv: lv}, function(data)) 
相關問題