我正在创建一个类似Twitter的应用程序作为学习练习,并且在JS文件的开头有以下内容:
$(function(){
setInterval(update, 3000);
$('.tweet li a.username').on('click', function() {
alert('hey!');
});
$('.showMore').on('click', function() {
moreIndex += 5;
update();
})
});
alert()是单击用户名时要触发的另一个函数的填充物。我的生成器正在为每个tweet创建以下HTML:
<ul class="tweets">
<ul class="tweet">
<li><a class="username" href="#">@jason:</a> tweet text </li><li class="date"> Date </li>
</ul>
</ul>
这包含在类tweetDiv的div中。
我尝试了许多选择器,但无法触发警报。我的选择器不正确吗?或者是别的什么?
最佳答案
这是另一回事。您的选择器看起来正确。
您的代码很可能会生成没有绑定事件的新推文。您最好使用event delegation修复此问题:
$('.tweets').on('click', '.tweet li a.username', function() {
alert('hey!');
});
在这里,
.tweets
元素应该是静态的,不能动态再生。