为什么jQuery has()不起作用?
我正在尝试开发一个评级系统。一切都完成了。但是,我无法显示悬停效果和鼠标移出效果。当用户将鼠标悬停在星号上时,他将把光标放在星号上,我将更改该类,然后将其还原为上一个 问题: 如果我添加has、hasClass、find、is函数,那么它就不起作用了。这个jQuery函数是否有放置这些函数的顺序?或者我的代码有什么问题 HTML代码:为什么jQuery has()不起作用?,jquery,css,Jquery,Css,我正在尝试开发一个评级系统。一切都完成了。但是,我无法显示悬停效果和鼠标移出效果。当用户将鼠标悬停在星号上时,他将把光标放在星号上,我将更改该类,然后将其还原为上一个 问题: 如果我添加has、hasClass、find、is函数,那么它就不起作用了。这个jQuery函数是否有放置这些函数的顺序?或者我的代码有什么问题 HTML代码: 而不是使用过滤器: $('.ratingul li').hover(function(){ $(this).filter('.star_em').prev
而不是使用过滤器:
$('.ratingul li').hover(function(){
$(this).filter('.star_em').prevAll().andSelf().removeClass('ratings_star_empty');
$(this).filter('.star_em').prevAll().andSelf().addClass('ratings_star');
});
$('.ratingul li').mouseout(function(){
$(this).filter('.star_em').prevAll().andSelf().addClass('ratings_star_empty');
$(this).filter('.star_em').prevAll().andSelf().removeClass('ratings_star');
});
你可以试试这个代码,你可能会得到你期望的结果
$('.ratingul li').hover(function(){
if($(this).hasClass('star_em'))
$(this).prevAll().andSelf().removeClass('ratings_star_empty');
else
$(this).prevAll().andSelf().addClass('ratings_star');
});
$('.ratingul li').mouseout(function(){
if($(this).hasClass('star_em'))
$(this).has('.star_em').prevAll().andSelf().addClass('ratings_star_empty');
else
$(this).prevAll().andSelf().removeClass('ratings_star');
});
我找到了你们所有人的真实答案,见我的答案: JS:
我认为has hasClass&is返回布尔值,因此您不能像这样使用。请共享HTMLN注意,$this.has'star_em'行缺少选择类的点,它应该是$this.has'。star_em'首先,您在一个点上有一个输入错误,在您想要的地方使用'star_em'。star。第二,我认为你应该使用过滤器,而不是像你可以使用一个简单的旧:悬停风格,并保存一些工作…我已经遵循这一点。但它不能正常工作。你能根据js检查我的html吗?你能添加呈现的html而不是PHP模板吗?
$('.ratingul li').hover(function(){
$(this).filter('.star_em').prevAll().andSelf().removeClass('ratings_star_empty');
$(this).filter('.star_em').prevAll().andSelf().addClass('ratings_star');
});
$('.ratingul li').mouseout(function(){
$(this).filter('.star_em').prevAll().andSelf().addClass('ratings_star_empty');
$(this).filter('.star_em').prevAll().andSelf().removeClass('ratings_star');
});
$('.ratingul li').hover(function(){
if($(this).hasClass('star_em'))
$(this).prevAll().andSelf().removeClass('ratings_star_empty');
else
$(this).prevAll().andSelf().addClass('ratings_star');
});
$('.ratingul li').mouseout(function(){
if($(this).hasClass('star_em'))
$(this).has('.star_em').prevAll().andSelf().addClass('ratings_star_empty');
else
$(this).prevAll().andSelf().removeClass('ratings_star');
});
$('.ratingul li').hover(function(){
if($(this).hasClass('star_em')){
$(this).prevAll().andSelf().removeClass('ratings_star_empty');
$(this).prevAll().andSelf().addClass('ratings_star');
}
});
$('.ratingul li').mouseout(function(){
$('li').siblings('.star_em').addClass('ratings_star_empty');
$('li').siblings('.star_em').removeClass('ratings_star');
});