我有一些在 $.post
回调函数中动态生成的输入复选框。然后我有一个 $().change()
调用,它在值更改时执行操作(提醒一些信息)。但是,对于动态生成的输入,.change() 不起作用。还有其他有效的输入被硬编码到有效的 html 中,但其他的则无效。
这是代码。
<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script>
$(document).ready(function(){
$("#hideme").hide();
$.post("php/test.php",{},function(data){
writeMe = "<input type='checkbox' name='foo' value='" + data + "'>" + data;
$("#insert").html(writeMe);
}, "json");
$("input[name=foo]").change(function(){
alert($(this).attr("value"));
})
});
</script>
</head>
<body>
<div id="insert"></div>
<input type="checkbox" name='foo' value='world'>world
</body>
</html>
php/test.php 很简单:
echo json_encode("hello");
最佳答案
问题是你的陈述:
$("input[name=foo]").change(function(){
alert($(this).attr("value"));
})
没有任何效果,因为在执行时,没有任何元素与 $("input[name=foo]") 匹配,因为 $.post() 回调尚未发生。
关于javascript - 使用 $.post 回调生成 html 后未注册事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/628363/