单击动态多次调用动态生成的div

时间:2015-09-02 16:50:21

标签: javascript jquery html css ajax

在ajax调用中,我生成一个div并创建与此div关联的单击操作。我根据来自数据的键值为div分配唯一的Id。这样做的问题

var $orderData = $('<div><table width="100%"><tr><td nowrap width="15%">'+valX1
                + '</td><td width="10%" class="imgClass" ><img src=' 
                + imgPath + ' id="img_'+serId+'" /></td> 
                + <td nowrap width="25%">' + customerName 
                + '</td><td nowrap width="25%">' + orderPendingCount 
                + '</td><td nowrap width="25%">' 
                + plant+'</td></tr>' + '<tr><td nowrap width="15%">' + modelName 
                + '</td><td></td><td nowrap width="25%">' 
                + totalNo + '</td><td nowrap width="25%">' 
                + deliveredTotal+'</td><td nowrap width="25%">'
                + salesPersonName + '</td></tr></table></div>'  );


$('body').on('click', '#img_'+serId, function(){
    $('body').css('cursor', 'default');
    alert(serId);
    return false;
});

正确调用点击操作。

当ajax调用带有相同的serId时会出现问题。 我假设再次为div创建了click动作。这会导致重复的点击动作调用。

有没有办法在我再次创建之前清除div动作脚本和div

2 个答案:

答案 0 :(得分:0)

你应该只使用一个类,该类将在以下后自动获取该事件:

$('body').on('click', '.divImgClass', function(){
    $('body').css('cursor', 'default');
    alert(serId);
    return false;
});

然后你不必在第一个地方重置事件,它将会在那个课程中出现

答案 1 :(得分:0)

在重新生成div之前插入脚本并尝试

passport-ldapauth