jquery
2010-09-16 74 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

相关问题