Javascript 单击操作多次调用动态生成的div
在ajax调用中,我生成一个div,并创建一个与这个div相关联的单击操作。我根据数据中的键值为div分配一个唯一的Id。这样做有问题吗Javascript 单击操作多次调用动态生成的div,javascript,jquery,html,css,ajax,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
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操作。这会导致重复的click操作调用
是否有一种方法可以在我再次创建之前清除div操作脚本和div您应该只使用一个类,该类将在以下时间后自动获取该事件:
$('body').on('click', '.divImgClass', function(){
$('body').css('cursor', 'default');
alert(serId);
return false;
});
这样,您就不必首先重置事件,它只会出现在该类上在重新生成div之前插入脚本并重试
if($('#divid').length != 0) {
$('#divid').remove();
}
根据您的执行情况,检查处理程序是否已经存在,然后调用$body.off'click'以在分配新的事件处理程序之前解耦现有的事件处理程序使用类而不是idy在ajax函数中调用click操作?这就是问题所在。每次运行ajax时,它都会为元素创建一个单击功能。您能否提供代码,将$orderData添加到页面中?@klauskpm我已经知道了。我在那里无路可逃。ajax调用实际上是jtable加载。我正在用jtable中接收的数据创建自定义行@Jonathan Brooks将尝试按照你的建议工作。这也许行。我的思维过程是一样的,只是我不知道实际的取消帮助自己