我试图使用类选择器(“.user”)按钮来运行另一个函数。但是,单击按钮时不会运行任何功能。下面是我正在处理的代码,最底层的类按钮。我只是想不通为什么它不起作用。我知道我的getNewTweets函数工作,我有另一个正常运行的按钮,但类选择器不起作用。谁能告诉我为什么?
$(document).ready(function(){
var $body = $('body');
var $timeline = $('<div class="timeline"></div>');
var $btn = $('<input/>').attr({type:'button',name:'getNewTweets',value:'Get New Tweets'})
$body.html('');
$timeline.html('');
$btn.appendTo($body);
$timeline.appendTo($body);
var currentIndex = 0; //Current index of tweets shown
function getNewTweets() {
var index = streams.home.length - 1 - currentIndex;
while(index >= 0) {
var tweet = streams.home[index];
var $tweet = $('<div class="tweet"></div>');
var $time = $('<div class="time"></div>');
var $message = $('<div class="message"></div>')
var $user = $('<button class=user></button>');
$time.text(tweet.created_at);
$user.text('@' + tweet.user);
$message.text('tweetled: ' + tweet.message);
$tweet.append($user);
$message.appendTo($tweet);
$time.appendTo($tweet);
$tweet.appendTo($timeline);
index -= 1;
currentIndex += 1;
}
};
$btn.click(getNewTweets);
$(".user").click(getNewTweets);
具有user
类的按钮被动态添加到DOM中,因此在执行$(".user").click(getNewTweets);
时,.user
可能不可用,这导致没有附加点击事件侦听器。解决方案是将事件监听器附加到文档而不是$(document).on('click', '.user', getNewTweets);