遍历后没有监听点击的JQuery

时间:2014-08-21 00:48:50

标签: javascript jquery mysql dom-traversal

我正在使用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数据库。

感谢您的回复!

1 个答案:

答案 0 :(得分:0)

您需要将事件附加到静态父元素。

尝试类似

的事情
$("#response").on("event","domElement", function(){
Your stuff...
});

or

 $("#response").on("click",".edit", function(){
Your stuff...
});