[英]How get id from dynamic button ? (jQuery)
我使用jQuery
和PDO
动态分页
当我创建一些id = xx
button
然后使用jQuery尝试获取button
id之一,这是行不通的
这是我的代码:
$records = $databaseConnection->query("SELECT * FROM area ORDER BY FIELD(local,'Earth','Mars','Mercury','Sun')LIMIT $start, $records_per_page");
$count = $records->rowCount();
$HTML='<table border="1"><tr><th>local</th><th>target</th><th>detail</th></tr>';
if($count > 0)
{
foreach($records as $row) {
$HTML.='<tr>';
$HTML.='<td>'.$row['local'].'</td>';
$HTML.='<td>'.$row['target'].'</td>';
$HTML.='<td><button class = click id ='.$row['id']. '>detail</button></td>';
$HTML.='</tr>';
}
$HTML.='</table>';
}
else
{
$HTML='No Data Found';
}
echo $HTML;
echo $pagination;
这是我的jQuery代码:
$(document).ready(function(){
$("button").click(function(){
alert(this.id);
});
});
如果我编码:
<html>
<head>
<title> Planet </title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script type="text/javascript" src="library/jQuery/jquery-1.11.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
alert(this.id);
});
});
</script>
</head>
<body>
(dynamic of pagination code)
...
...
...
<button id = "1"> try </button>
</body>
</html>
当我单击id = 1
的button
时,这是可行的
但是动态按钮不起作用...
我的代码中有什么?
您必须使用.on()
为动态创建的元素绑定点击处理程序,请参见以下代码
$(document).ready(function(){
$(document).on("click","button",function(){
alert(this.id);
});
});
抱歉,我刚刚看到您在谈论动态添加按钮。 我很确定委派的事件处理程序会有所帮助: http : //api.jquery.com/on/
您的问题的解释:
在动态附加html时,新创建的DOM对象没有附加事件处理程序,因为附加处理程序的代码已经运行。
使用委托的事件处理程序 ,您可以将事件处理程序附加到运行代码时存在的父元素(在本例中为文档)。 单击子元素时(无事件处理程序),事件由浏览器冒泡并由其父项处理(附加了事件处理程序)
例
$(document).on('click',".close_fast",function(event){
alert("hi");
});
您的代码说:
$HTML.='<td><button class = click id ='.$row['id']. '>詳情</button></td>';
那不应该是:
$HTML.='<td><button class="click" id="'.$row['id']. '">詳情</button></td>';
否则,HTML无效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.