jQuery的.hover和.on出现问题

jQuery的.hover和.on出现问题,jquery,Jquery,我在使用.hover和.on使用jQuery生成更改时遇到问题 我已经包括了一个: $(“.nName”).hover(函数(){ $(this.css)({ “颜色”:“蓝色”, “文本装饰”:“下划线” }); },函数(){ $(this.css('color','black'); }); setTimeout(函数(){ $('body').append('dynamicrenderednode1')) //悬停事件将在此处生效。 /** $(“.nName2”).hover(函数()

我在使用
.hover
.on
使用jQuery生成更改时遇到问题

我已经包括了一个:

$(“.nName”).hover(函数(){
$(this.css)({
“颜色”:“蓝色”,
“文本装饰”:“下划线”
});
},函数(){
$(this.css('color','black');
});
setTimeout(函数(){
$('body').append('dynamicrenderednode1'))
//悬停事件将在此处生效。
/**
$(“.nName2”).hover(函数(){
$(this.css)({
“颜色”:“蓝色”,
“文本装饰”:“下划线”
});
},函数(){
$(this.css('color','black');
});
**/
}, 2000)
$(“.nName2”).hover(函数(){
$(this.css)({
“颜色”:“蓝色”,
“文本装饰”:“下划线”
});
},函数(){
$(this.css('color','black');
});
setTimeout(函数(){
$('body').append('dynamicrenderednode2')
}, 2000)
$('body').on('mouseenter','.nName3',function(){
$(this.css)({
“颜色”:“蓝色”,
“文本装饰”:“下划线”
});
});
$('body').on('mouseleave','.nName3',function(){
$(this.css('color','black');
});


现有节点
小提琴中的问题是您试图在动态渲染元素上附加事件

如果在某个元素上应用事件,它应该出现在DOM中

在您的情况下,您需要将事件绑定到
文档
,然后再绑定到它的子文档

请像这样重写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();
  }
});
$(文档)。在({
鼠标指针:函数(){
$(this.css)({
“颜色”:“蓝色”,
“文本装饰”:“下划线”
});
},
mouseleave:function(){
$(this.css('color','black');
}
},“.nName”);
$(文档).on('单击','.nName',函数(){
$(“.individualStream”).empty();
var specificName=$(this.text();
var specificUser=streams.user.specificName;
对于(变量i=0;i

我在这里使用mouseenter和mouseleave事件,因为在动态渲染元素的情况下,我们不能使用与
hover
相同的语法。

您在第一行代码之后立即关闭了hover函数。你打算这么做吗<代码>$(this.css({'color':“blue”,“text decoration:“underline”});}@我相信是的,因为在它之后添加了
,function(){$(this.css('color','black');})所以第一个应用于悬停,第二个应用于离开。是的,@tomerpacific我认为合适的syntex是:$(“.selector”).hover(函数(){//stuff to do on mouse enter},函数(){//stuff to do on mouse left});请考虑解释为什么你的答案能解决这个问题。
$(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();
  }
});