当前位置:  开发笔记 > 编程语言 > 正文

jQuery如果DIV没有类"x"

如何解决《jQuery如果DIV没有类"x"》经验,为你挑选了3个好方法。

在jQuery中,我需要做一个if语句来查看$ this是否包含类'.selected'.

$(".thumbs").hover(function(){

$(this).stop().fadeTo("normal", 1.0);
},function(){
$(this).stop().fadeTo("slow", 0.3);

});

基本上当运行这个函数时(在悬停时)我不想执行淡入淡出,如果已将类'.selected'附加到div,这将意味着图像将完全不透明以表示它已被选中.在谷歌搜索没有运气,即使这是一个如何使用IF声明的简单问题...



1> alphadogg..:

使用"not "选择器.

例如,而不是:

$(".thumbs").hover()

尝试:

$(".thumbs:not(.selected)").hover()



2> Russ Cam..:

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 class
Another 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 class
Another one with a thumbs class



3> 小智..:

我认为作者正在寻找:

$(this).not('.selected')


它有效,但值得注意的是,它不能作为布尔值,因为它返回一个数组.空数组在Javascript中是"真实的".如果你真的想要,可以使用`$(this).not('.selected').length`作为布尔值,但这有点冗长.
推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有