我创建了一个非常简单的index.html文件,里面包含了一些jquery脚本。您可以在下面看到:
<script>
$(document).ready(function(){
var $tweets = $('.tweets');
var current_position = -1;
function getTweets(){
var index = streams.home.length - 1;
var cp = index;
while(index >= current_position + 1){
var tweet = streams.home[index];
$tweets.append('<div class="twe"><span class="name" style="color:blue">' + '@' + tweet.user + ': ' + ' </span><span class="message">' + tweet.message + tweet.created_at + '</span></div>');
index--;
}
current_position = cp;
}
getTweets();
$('button').click(function(){
getTweets();
});
$('.name').click(function(){
$tweets.prepend('<div>' + 'objname' + streams.home.length + '</div>');
});
});
</script>
有一个按钮用于更新所有推文,并动态地将它们放在class =&#34; tweets&#34;部分。无论我按下它多少次,此按钮都能正常工作。
然后我将点击事件添加到所有具有班级名称&#39; name&#39;一旦我点击它,它将添加&#39; objname&#39; + streams.home.length到我的前面 section class =&#34; tweets&#34;部分。问题是第一次,我点击$(&#39; .name&#39;)它工作正常,但稍后我通过$(&#39;按钮&#39;)点击事件添加了更多项目。似乎新创建的$(&#39; .name&#39;)项目无法点击,这意味着他们不会生成&#39; objname&#39; + streams.home.length到我的前面 class =&#34; tweets&#34;部分。我真的很困惑,不知道为什么。
答案 0 :(得分:0)
尝试以下
$("body").on("click",".name",function(){
$tweets.prepend('<div>' + 'objname' + streams.home.length + '</div>');
});
当您的元素在页面上添加运行时,需要在&#34; on&#34;的帮助下单独处理。在创建事件时自动绑定事件。