2017-01-13 112 views
0

我創建了一個非常簡單的index.html文件,裏面包含了一些jquery腳本。你可以看到如下: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 =「鳴叫」的一部分。無論我按多少次這個按鈕都可以正常工作。

然後,我將點擊事件添加到所有名稱爲'name'的人,一旦我點擊它,它會將'objname'+ streams.home.length添加到我的 部分class =「tweets」部分的前面。問題是第一次,我點擊$('。name')它工作正常,但後來我通過$('按鈕')單擊事件添加更多的項目。看起來新創建的$('。name')項不可點擊,這意味着它們不會在class =「tweets」部分的 部分的前面生成「objname」+ streams.home.length。我真的很困惑,不知道爲什麼。

+2

的[事件綁定的動態創建的元素嗎?]可能的複製(http://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements) –

回答

0

嘗試當你的元素被在頁面上添加以下運行時

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

,它需要單獨照顧與「開」時,被創建時它會自動將事件綁定的幫助。

check reference

+0

非常感謝你。它的工作原理,我不知道它是由動態綁定問題引起的。 – luckydooodle

相關問題