2017-10-28 47 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

完全没有错误。如果你愿意,我们可以把它移到聊天中,这样你就可以看到。 –