Ich habe einige Eingabe-Checkboxen, die dynamisch in einer $.post
Callback-Funktion generiert werden. Dann habe ich einen $().change()
Aufruf, der Dinge tut, wenn der Wert geändert wird (warnt einige Informationen). Für die dynamisch generierten Eingaben funktioniert .change() jedoch nicht. Es gibt andere Eingaben, die funktionieren, die in den HTML-Code, der funktioniert, fest codiert sind, aber die anderen nicht.
Hier ist der Code.
<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 ist einfach:
echo json_encode("hello");
Yup. Grundsätzlich erstellt die Funktion .post (...) einen asynchronen Aufruf von "php/test.php". Die Callback-Funktion wird erst ausgeführt, wenn die Daten zurückkommen. Zu diesem Zeitpunkt wurde Ihr Änderungsereignis bereits an die vorhandenen Eingaben gebunden. – Joel