jQuery的行不能被选择后动态HTML追加
后,我在追加阿贾克斯成功新行,该行不能选择(我使用toggleClass()也悬停())。谷歌搜索后,这是因为事件不绑定,并应使用在()的而不是点击(),但它仍然是相同的jQuery的行不能被选择后动态HTML追加
$("#simpan").on("click",function(){
var nim=$("#nim").val();
var nama=$("#nama").val();
var alamat=$("#alamat").val();
$.ajax({
type:"post",
url:"data.php?action=getdata",
data:"nim="+nim+"&nama="+nama+"&alamat="+alamat,
success:function(data){
$("table").append(data);
resetForm();
}
});
});
你们有解决办法吗?
更新: 这里的行的事件处理程序
$("tr").not(":first").click(function(){
$("tr").not(this).removeClass("selected");
$(this).toggleClass("selected");
});
我的表
<table id="table" border="1">
<tr>
<td>Nim</td>
<td>Nama</td>
<td>Alamat</td>
</tr>
<?php
include "db.php";
$result=mysql_query("SELECT * FROM mahasiswa");
while($mahasiswa=mysql_fetch_array($result)){
?>
<tr>
<td><?php echo $mahasiswa["nim"]; ?></td>
<td><?php echo $mahasiswa["nama"]; ?></td>
<td><?php echo $mahasiswa["alamat"]; ?></td>
</tr>
<?php
}
?>
</table>
“simpan”是一个按钮,单击时,该数据表格使用ajax保存到数据库,并且成功时,数据被附加到表格中。
echo "
<tr>
<td>$_POST[nim]</td>
<td>$_POST[nama]</td>
<td>$_POST[alamat]</td>
</tr>
";
$(document).on("click", "#simpan", function(){
var nim=$("#nim").val();
var nama=$("#nama").val();
var alamat=$("#alamat").val();
$.ajax({
type:"post",
url:"data.php?action=getdata",
data:"nim="+nim+"&nama="+nama+"&alamat="+alamat,
success:function(data){
$("table").append(data);
resetForm();
}
});
我不认为ID为#simpan的元素是行,看起来像父母,否则多个ID也是一个问题。 – adeneo 2013-02-18 17:29:48
@adeneo我的猜测是,这是选择器,因为他说他已将它切换到“on”,但他使用的语法错误。然而,你是对的,关于ID选择器,如果我是正确的,他需要将ID切换到一个类 – 2013-02-18 17:31:58
对于on()
动态添加元素的语法是这样的:
$(staticPanentElement).on(eventName, target, handlerFunction);
凡staticPanentElement
意味着指向未动态创建并且包含target
的项目的任何有效的选择器。
而在您的代码中,似乎您使用的行数相同且为id=simpan
,这是不可接受的。
我们确实不需要看到附加行的代码,但行本身的事件处理程序会更有趣。 – adeneo 2013-02-18 17:26:28
请包括您正在使用的表格的HTML。 – 2013-02-18 17:26:55
'$(“#simpan”)'是谁的ID? – Jai 2013-02-18 17:35:07