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();
}
});