Проблема в вашей скрипке заключается в том, что вы пытаетесь прикрепить событие к динамически отображаемому элементу.
Если вы применяете событие к какому-либо элементу, оно должно присутствовать в DOM.
В вашем случае вам нужно привязать ваше событие к document
, а затем к его дочернему элементу.
Пожалуйста, перепишите ваш jquery следующим образом
$(document).on({
mouseenter: function () {
$(this).css({
'color': "blue",
"text-decoration": "underline"
});
},
mouseleave: function () {
$(this).css('color', "black");
}
}, ".nName");
$(document).on('click', '.nName', function () {
$(".individualStream").empty();
var specificName = $(this).text();
var specificUser = streams.user.specificName;
for (var i = 0; i < specificUser.length; i++) {
var tweet = specificUser[i].message;
var $tweet = $('<div></div>');
var $name = $('<span class="nName"></span>');
var $time = $('<div class="time"></div>');
var $at = $('<span class="at"></span>');
$time.text("Time of Tweet: " + tweet.created_at);
$name.text(specificName);
$at.text('@');
$tweet.text(" " + tweet);
$tweet.prepend($name);
$tweet.prepend($at);
$tweet.append($time);
$tweet.prependTo($(".inidvidualStream"));
$('.twitterStream').hide();
$('.individualStream').show();
}
});
Я использую событие mouseenter и mouseleaveздесь, потому что мы не можем использовать тот же синтаксис, что и hover
в случае динамического рендеринга элемента.