在jQuery中,我需要做一个if语句来查看$ this是否包含类'.selected'.
$(".thumbs").hover(function(){ $(this).stop().fadeTo("normal", 1.0); },function(){ $(this).stop().fadeTo("slow", 0.3); });
基本上当运行这个函数时(在悬停时)我不想执行淡入淡出,如果已将类'.selected'附加到div,这将意味着图像将完全不透明以表示它已被选中.在谷歌搜索没有运气,即使这是一个如何使用IF声明的简单问题...
使用"not "选择器.
例如,而不是:
$(".thumbs").hover()
尝试:
$(".thumbs:not(.selected)").hover()
jQuery有hasClass()函数,如果包装集中的任何元素包含指定的类,则返回true
if (!$(this).hasClass("selected")) { //do stuff }
看看我的使用示例
如果你将鼠标悬停在一个div上,如果div不包含'selected'类,它会以正常速度衰减到100%不透明度
如果你将鼠标悬停在一个div之外,如果div不包含'selected'类,它会以低速度消失为30%不透明度
单击该按钮可将"选定"类添加到红色div.褪色效果不再适用于红色div
这是它的代码
Sandbox One div with a thumbs classAnother one with a thumbs class
编辑:
这只是猜测,但你想要实现这样的目标吗?
两个div都以30%的不透明度开始
将鼠标悬停在100%的不透明度上,徘徊在30%的不透明度上.淡化效果仅适用于没有"选定"类的元素
单击div可添加/删除"已选择"类
jQuery代码在这里 -
$(function() { $('.thumbs').bind('click',function(e) { $(e.target).toggleClass('selected'); } ); $('.thumbs').hover(fadeItIn, fadeItOut); $('.thumbs').css('opacity', 0.3); }); function fadeItIn(e) { if (!$(e.target).hasClass('selected')) { $(e.target).fadeTo('normal', 1.0); } } function fadeItOut(e) { if (!$(e.target).hasClass('selected')) { $(e.target).fadeTo('slow', 0.3); } }One div with a thumbs classAnother one with a thumbs class
我认为作者正在寻找:
$(this).not('.selected')