我正在使用Jquery从网站加载报告并将其遍历到网站。一切都很好但是在第一个报告加载到div之后,任何关于遍历材料的事件都不会被收听。请帮忙!
javascript代码:
<script>
$(function(){
function call_php(str,str2) {
if(window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
} // end xml request object else
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("response").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","func.php?f="+str+"&s="+str2,true)
xmlhttp.send();
}
// listener for class edit
$('.edit').on('click',function(){
var mon1 = $('#sel_mon').valueOf();
var yr1 = $('#sel_yr').valueOf();
var mon = mon1+' '+yr1;
call_php(action,mon);
});
});
html代码:
<div id="response"> Here is where the content begins</div>
<ul class="edit">Click here for report</ul>
func.php代码:
// connect to DB
// Run query
// handle results
while($stmt->fetch()){
echo '<tr><td>'.$name.'</td><td>'.$age.</td><td><ul class="edit">
Modify this record</td></tr>';
}
基本上这就是问题所在。页面加载并且有&#34;这是内容开始的地方&#34;没有问题。然后我们点击&#34;点击此处查看报告&#34;并且报告在div id =&#34;响应&#34;中弹出正常。 div中的新html包含一个记录列表,并包含另一个带有class =&#34; edit&#34;。问题是在从数据库中提取的数据被打印到屏幕之后,用户想要通过按下&#34;修改此记录来修改记录&#34;在每行打印。 javascript侦听器不会在遍历的数据上监听这些点击,因此浏览器不会采取任何操作。
问题是如何让jquery在广告投放后听取新打印数据的点击次数。这是一个必须从mysql数据库中获取数据的项目,然后在屏幕上打印出来之后应该修改并更新到mysql数据库。
感谢您的回复!
答案 0 :(得分:0)
您需要将事件附加到静态父元素。
尝试类似
的事情$("#response").on("event","domElement", function(){
Your stuff...
});
or
$("#response").on("click",".edit", function(){
Your stuff...
});