My code is adding a click event handler which filters messages on my feed to only show the username that has been clicked, however the click event is only triggered once. How can I make this click event to work every time a username is clicked?
Note: the newMessage
function is a helper function for my renderFeed
function.
var newMessage = function(index, user) {
if (user !== undefined) {
var message = streams['users'][user][index];
} else {
var message = streams.home[index];
}
var $message = $('<div class="message"></div>');
var $username = $('<div class="username"></div>');
$username.text('@' + message.user);
$username.appendTo($message);
$message.prependTo($messageStream);
}
$('.username').on('click', function() {
$messageStream.html('');
var $user = ($(this).attr('id'));
renderFeed($user);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<div id="app">
<div id="feed">
<div class="username">@user</div>
<div class="message">Random message</div>
</div>
</div>
</body>