2017-05-08 107 views
0

我有一个代码,显示和隐藏div,当div打开或关闭不透明度和颜色的变化。我不想使用JQuery .css()将CSS直接添加到元素,而是想使用addClass,但我无法弄清楚为什么下面的代码不起作用。JQuery addClass不工作

我收到消息'ReferenceError:$ is not defined'当我运行构建。我不确定这是什么意思。请帮助。

JQuery的

$(document).ready(function() { 
    $(".upload-panel-container").click(function(e) { 
     $(".upload-menu-container").toggleClass("open").slideToggle(100, "linear"); 
     if ($(".upload-menu-container").hasClass("open")) { 
      $(".upload-panel-container").addClass("setOpacityto1"); 
     } else { 
      $(".upload-panel-container").addClass("setOpacityto85"); 
     } 
    }); 

}); 

CSS

.setopacityto1 { 
    opacity: 1; 
    color: red; 
} 

.setopacityto85{ 
    opacity: .85; 
    color: blue; 
} 
+0

您是否包含jQuery? – j08691

+0

是的,我在html下面的html和js文件头上添加了jQuery。 slideToggle正在工作,但不是addClass。 – Fortytwo

回答

2

“$没有定义” 通常意味着jQuery的尚未加载到您的网页正常。所以$(jQuery语法)不被识别

更新:我修正了它。你的类名是区分大小写的,确保你在CSS和JS中使用相同的名字。您不仅需要添加您想要更改的类,还需要删除它们;否则每次点击时,该类将再次添加,并且最终会将这两个类添加到元素中。 (检查元素以了解我的意思。)

$(document).ready(function() { 
    $(".upload-panel-container").click(function() { 
     $(".upload-menu-container").toggleClass("open").slideToggle(100, "linear"); 
     if ($(".upload-menu-container").hasClass("open")) { 
      $(".upload-panel-container").addClass("setopacityto1"); 
      $(".upload-panel-container").removeClass("setopacityto85"); 
     } else { 
      $(".upload-panel-container").addClass("setopacityto85"); 
      $(".upload-panel-container").removeClass("setopacityto1"); 
     } 
    }); 

}); 
+0

嘿刚刚发现了一些东西,我想知道你需要什么“e”,当你将“e”传递给你的函数? – KayeeJayee

+0

我删除它。我有我的HTML,切换工程,但没有addClass的jQuery。 – Fortytwo

+0

@Fortytwo我找到了一个解决方案。我编辑了我的答案,尝试一下代码,看看它是否也适用于你。 – KayeeJayee