jquery按钮第一次工作正常但第二次不工作

时间:2017-01-13 22:29:42

标签: html

我创建了一个非常简单的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;部分。我真的很困惑,不知道为什么。

1 个答案:

答案 0 :(得分:0)

尝试以下

$("body").on("click",".name",function(){
          $tweets.prepend('<div>' + 'objname' + streams.home.length + '</div>');          
        });

当您的元素在页面上添加运行时,需要在&#34; on&#34;的帮助下单独处理。在创建事件时自动绑定事件。

check reference