为新附加的元素分配单击处理程序

时间:2010-09-16 03:23:57

标签: jquery

如何在以下示例中添加单击处理程序?我需要将它分配给新附加的锚元素。

$.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);})

});

2 个答案:

答案 0 :(得分:3)

您想使用.live jQuery关键字。

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

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

此示例btw需要位于任何其他代码之外,并放在$(document).ready jQuery方法中。它会将click事件绑定到具有“bullet”类的所有项目。

答案 1 :(得分: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 );
});