コールバック関数は、JQueryによって追加される要素では機能しません。私の例では親部門とclass=parent
があります。それをクリックすると、<span class="child">Child</span>
が追加されています。しかし、私が子供をクリックすると、メッセージに警告は出ません。 .child
は、通常のイベントリスナは、将来的に発生したチャイルズにclick
を登録しません動的な追加要素があるので、JQueryによって追加される要素にコールバック関数を追加する方法
<html>
<head>
<style>
.parent{
width: 50px;
height: 30px;
line-height: 30px;
background-color: #232323;
color: #fff;
text-align: center;
}
.child{
width: 50px;
height: 30px;
line-height: 30px;
background-color: #f3b556;
color: #232323;
text-align: center;
margin-top: 10px;
}
</style>
</head>
<body>
<div class="parent">
<span>Parent</span>
</div>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$('.parent').click(function(){
alert('parent clicked');
$(this).after("<span class='child'>child</span>");
});
$('.child').click(function(){
alert('child clicked');
});
</script>
</body>
</html>
.clickの代わりに '.on'を使用する必要があります。この答えを見てください。http://stackoverflow.com/a/1207393/1270865 – cafebabe1991