Javascript Jquery。单击“仅在条件下点火”
嘿,我试图让一个函数只在class2未附加到class1时执行:Javascript Jquery。单击“仅在条件下点火”,javascript,jquery,html,Javascript,Jquery,Html,嘿,我试图让一个函数只在class2未附加到class1时执行: $(“#div”).on('mouseenter','class1:not(.class2'),function(){ $(“.class1”).fadeIn('fast',0); 另一个函数(); }); .class1{ 位置:相对位置; 宽度:181px; 身高:381px; 背景:透明url(/img/phone2.png)中心不重复; 不透明度:1; 光标:十字线; 背景大小:100%; z指数:1000; } .c
$(“#div”).on('mouseenter','class1:not(.class2'),function(){
$(“.class1”).fadeIn('fast',0);
另一个函数();
});
.class1{
位置:相对位置;
宽度:181px;
身高:381px;
背景:透明url(/img/phone2.png)中心不重复;
不透明度:1;
光标:十字线;
背景大小:100%;
z指数:1000;
}
.class1.class2{
背景色:青色;
}
.课堂1.课堂3{
-webkit转换:不透明度300ms;
过渡:不透明度300ms;
位置:绝对位置;
顶部:88px;
左:21px;
右:20px;
底部:92px;
背景:透明;
溢出:隐藏;
}
应该是:
$("#div").on('mouseenter', '.class1:not(.class2)', function() {
^
也许你需要改变
$(".class1").fadeIn('fast', 0);
到
您可以使用jquery函数.has(selector)通过检查返回数组的length属性是否大于零来检查元素是否有适合选择器的子元素。例如:
if(!$(".class1").has(".class2").length)
triggerFunction();
但是您应该小心,因为如果任何类名为“class1”的元素有一个类为“class2”的子元素,该语句将始终返回false。如果id为“div”的元素也是类名为“class1”的元素,那么只需使用
if(!$(this).has(".class2").length)
在.on()方法中。您提交的内容:
我的更新版本:
差异:
- HTML类名小写(如注释中所述)
而不是$(“body”)
$(“#div”)
查找具有#div
的元素。使用id=“div”
的方式需要一个祖先元素。不确定您为什么没有执行.on()
$(“.class1:not(.class2)”)。在('mouseenter',function(){
缺失'class1'
(如另一个答案中所述)
不是问题,那么也显示html。类名区分大小写。如果在html中使用Class1
,则需要在css中使用Class1
(和jquery选择器)。而不是Class1
也显示类在代码中的显示方式。您提供的信息仍然不够
if(!$(this).has(".class2").length)