我使用以下方法在我的页面中生成了几个元素.例如,
$("#button"+caption).click(function(){ var firstDisplay = '<div id="firstDisp'+caption+'"><ul>'; for(var i=0;i<parents.length;i++){ firstDisplay=firstDisplay+'<li class="fClick">'+parents[i]+'</li>'; } firstDisplay=firstDisplay+'</ul></div>'; $(firstDisplay).dialog(); });
当我为’fClass’创建一个onclick事件时,如下所示:
$(".fClick").click(function(){ alert("hey!"); });
它不工作!但是,如果我将onclick函数放在另一个函数中,就在.dialog()之后,它可以工作!我有很多这样创建的元素,所以我不能把所有的onclick事件放在一个单一的方法.有没有办法解决?我也有同样的问题.append方法.
解决方法
根据您正在使用的jQuery的版本将其更改为.on或.delegate.
截至jQuery 1.7
$(document).on('click','.fClick',function(){ alert("hey!"); });
对于较旧的jQuery版本使用委托
$(document).delegate('.fClick','click',function(){ alert("hey!"); });