切换按钮不起作用?(未捕获的SyntaxError:意外的标识符)

时间:2014-04-06 20:44:54

标签: javascript jquery

我的代码存在问题。我使用一个按钮来隐藏和显示菜单,但它不起作用。我没有理解这个问题。

  

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");
    }
  });
});'    

4 个答案:

答案 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");
    }
  });
});

演示:http://jsfiddle.net/pmHsL/

答案 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”),如果已经存在,则删除元素上的类。