我的代码存在问题。我使用一个按钮来隐藏和显示菜单,但它不起作用。我没有理解这个问题。
Uncaught SyntaxError:意外的标识符:: par。 3
$(function() {
$(".but").click( {
if $("#div").hasClass("class"){ //problem is here
$("#div").removeClass("class").addClass("anotherclass");
} else{
$("#div").removeClass("anotherclass"").addClass("class");
}
});
});'
答案 0 :(得分:1)
请先使用您看到的起始代码检查您的控制台:
SyntaxError:预期标识符,但找到' $'代替
从控制台开始调试。
您没有为点击功能分配处理程序,因为您遗漏了function()
密钥,并且您的第二个"
中有一个removeClass
,而您的if语句错过了封闭的parens
附注:but
是自定义DOM标记,如果您想选择一个类或ID,请使用正确的selector
代码:
$(function() {
$("but").click(function() {
if ($("#div").hasClass("class")) { //problem is here
$("#div").removeClass("class").addClass("anotherclass");
} else{
$("#div").removeClass("anotherclass").addClass("class");
}
});
});
答案 1 :(得分:1)
正如其他人所说的那样,你错过了这个功能,但是"但是"不是有效的选择器,我在if语句中添加了(),但是编码首选项
$(function () {
$("button").click(function () { //but is not valid selector, button is
if ($("#div").hasClass("class")) { //problem is here
$("#div").removeClass("class").addClass("anotherclass");
} else {
$("#div").removeClass("anotherclass").addClass("class");
}
});
});
答案 2 :(得分:0)
$(function() {
$("but").click(function() {
if $("#div").hasClass("class")){ //problem is here
$("#div").removeClass("class").addClass("anotherclass");
} else{
$("#div").removeClass("anotherclass").addClass("class");
}
});
});
click
方法使用匿名函数,遗漏了function()
。 "
上还有一个备用anotherClass"
,最后也不需要'
。你在if语句中也错过了)
。
答案 3 :(得分:0)
我在你的代码中发现了一个问题:当你使用“click”快捷方式时,你必须传递一个函数,而不是一个Object。这是解决方案:
$(function() {
$("button").click(function(){
$("#div").toggleClass("anotherclass class");
});
});
请注意,如果在元素(“#div”)上找不到它,则jQuery方法“toggleClass”会添加类(“anotherclass”),如果已经存在,则删除元素上的类。