我想显示一个按ajax响应获取的按钮ID
我使用这些代码行来休息按钮
<script language="JavaScript">
var XMLHttpRequestObject=false;
if(window.XMLHttpRequest){
XMLHttpRequestObject = new XMLHttpRequest();
}else if(window.ActiveXObject){
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHttp");
}
function getData(){
var district_id = 'D01';
var queryString = "?district_id=" + district_id ;
XMLHttpRequestObject.onreadystatechange = function(){
if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){
var container = document.getElementById('issues');
var response = XMLHttpRequestObject.responseText;
container.innerHTML = response;
}
}
XMLHttpRequestObject.open("GET", "complaints.php"+queryString ,true);
XMLHttpRequestObject.send(null);
}
</script>
<div id="issues">
</div>
<?php
$district_id = $_GET['district_id'];
echo '<button id="'.$district_id.'">'.$district_id.'</button>';
?>
现在我的问题是我需要动态按钮ID
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
getData();
$("button").click(function(){
var id = $(this).attr("id");
alert(id);
});
});
</script>
答案 0 :(得分:0)
您的按钮是根据AJAX响应动态创建的,因此您无法将点击事件直接附加到按钮上,因为此时它并不存在于DOM中。
使用Event Delegation,并将事件委托给更高级别的内容,例如document
。这意味着传递给.on
的选择器将检查所有点击,因此所有点击事件都会冒泡并由您的函数处理(如果它与选择器匹配)。
$(document).on('click', 'button', function(){
var id = $(this).attr("id");
alert(id);
});