2017-10-28 23 views
1

我打算選擇一種輸入類型,其中當我選擇用戶 時,它只會顯示來自這些用戶的推文。jQuery select用戶不工作

我所做的是我創建的FF HTML:

<select id="selectUser"> 
     <option value="all">All</option> 
     <option value="user1">user1</option> 
     <option value="user2">user2</option> 
     <option value="user3">user3</option> 
     <option value="user4">user4</option> 
     <option value="user5">user5</option> 
    </select> 

然後,我創建了一個將處理工作的函數:

Tweets.displayUserTweets = function(id) { 
    $('#main-content').html(''); 
    var streamLength = streams.users[id].length; 
    var index = 0; 
    while (index < streamLength) { 
     var tweet = streams.users[id][index]; 
     var dayWrapper = moment(tweet.created_at).fromNow(); 
     $('#main-content').append('<div class="box-content"><img src="img/' + tweet.user + '.png" align="left" class="avatar-main"><h5 class="fullNameMain">' + tweet.user + '<span class="userNameMain"> @' + tweet.user + ' * ' + dayWrapper + '</span></h5><p class="tweetContent">' + tweet.message + '</p><ul><li><span class="comment"></span>48K</li><li><span class="retweet"></span> 50K</li><li><span class="heart"></span>100K</li><li><span class="msg"></span>22K</li></ul></div>'); 
     index++; 
    } 
}; 

然後只要準備好文檔和用戶選擇其中一個用戶將清空主要內容框,然後僅顯示用戶推文。

$('#selectUser').on('click', 'button', function() { 
     if (this.value === 'all') { 
      Tweets.latestTweets(); 
     } else { 
      Tweets.displayUserTweets(this.value); 
     } 
    }); 

現在它不工作。任何想法我應該調整?

回答

0

更改事件處理程序clickchange它會工作。

點擊處理程序會在設置時觸發,但不會聽取所做的更改,因爲點擊只會打開菜單,並在發生任何更改之前發生。在用戶對列表進行更改後觸發change

$('#selectUser').on('change', function() { 
    if (this.value === 'all') { 
     Tweets.latestTweets(); 
    } else { 
     Tweets.displayUserTweets(this.value); 
    } 
}); 
+0

這個想法是正確的,但它不適用於我的代碼。幫我解決問題? –

+0

控制檯中是否有任何錯誤(點擊F12)或其他指示代碼在做什麼? – Mouser

+0

完全沒有錯誤。如果你願意,我們可以把它移到聊天中,這樣你就可以看到。 –