jquery
2010-09-16 97 views 2 likes 
2

如何在下面的示例中添加點擊處理程序?我需要將它分配給新添加的錨元素。將點擊處理程序分配給新添加的元素

$.each(regions1, function(key, value) { 

    var coords = regions1[key].rel.split('-'); 
    $("#map").append("<a href='javascript:void(0)' id='"+ regions1[key].id +"' class='bullet' style='left: "+ addpx(Number(coords[0]) - rempx(settings.bulletWidthOffset)) +"; top: "+ addpx(Number(coords[1]) - rempx(settings.bulletHeightOffset)) +"'>&nbsp;</a> ") 

    //.click(function(){showPopup(regions1[key].id);}) 

}); 

回答

1

試試這個:

$.each(regions1, function(key, value) { 

    var coords = regions1[key].rel.split('-'); 

    // first, create the element 
    var element = $("<a href='javascript:void(0)' id='"+ regions1[key].id +"' class='bullet' style='left: "+ addpx(Number(coords[0]) - rempx(settings.bulletWidthOffset)) +"; top: "+ addpx(Number(coords[1]) - rempx(settings.bulletHeightOffset)) +"'>&nbsp;</a> "); 

    // then add the listener/handler 
    element.click(function(){showPopup(regions1[key].id);}) 

    // finally, append the new element to the dom. 
    $("#map").append(element); 
}); 
3

您想要使用.live jQuery關鍵字。

http://api.jquery.com/live/

$('.bullet').live('click', function() { 
    // Bound handler called. 
}); 

這樣,順便說一句,需要外面你的任何代碼,並放置在$(文件)。就緒jQuery的方法中坐。它會將一個點擊事件綁定到所有具有「子彈」級別的項目。

+0

您的片斷,而不是 '活' 有 '捆綁'。 – sje397 2010-09-16 03:29:12

+0

修復,謝謝。 – griegs 2010-09-16 03:30:05

+0

D'oh,我們必須同時編輯它。 – Robert 2010-09-16 03:30:54

相關問題