jQuery类选择器click()不起作用

问题描述 投票:-3回答:1

我试图使用类选择器(“.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);
javascript jquery html
1个回答
1
投票

具有user类的按钮被动态添加到DOM中,因此在执行$(".user").click(getNewTweets);时,.user可能不可用,这导致没有附加点击事件侦听器。解决方案是将事件监听器附加到文档而不是$(document).on('click', '.user', getNewTweets);

© www.soinside.com 2019 - 2024. All rights reserved.