jQuery意外令牌错误=

时间:2013-06-22 04:55:09

标签: javascript jquery

我在下面的代码示例的函数"unexpected token ="行上得到toggleNav = function(evt){。我已经浏览了一些类似的帖子,但似乎无法理解为什么它会抛出错误。

非常感谢任何帮助我指明正确方向的帮助。

<script type="text/javascript">
    $(document).ready(function($) {

     $("#nav > li > a").on("click", toggleNav);

    function toggleNav = function(evt){
    var clicked = $(this).parent().attr("class");
    $("#nav").removeClass("btn1 btn2 btn3 btn4 btn5 btn6 btn7").addClass(clicked);
    evt.preventDefault();
}

});
</script>

4 个答案:

答案 0 :(得分:2)

试试这个

var toggleNav = function(evt){
    var clicked = $(this).parent().attr("class");
    $("#nav").removeClass("btn1 btn2 btn3 btn4 btn5 btn6 btn7").addClass('clicked');
    evt.preventDefault();
}

或者您可以直接调用

function toggleNav (evt) {
    var clicked = $(this).parent().attr("class");
    $("#nav").removeClass("btn1 btn2 btn3 btn4 btn5 btn6 btn7").addClass('clicked');
    evt.preventDefault();
}

并且还点击了引号,因为它是一个类名

答案 1 :(得分:2)

您应该将function toggleNav替换为var toggleNav,这应该没问题。

或者您也可以删除该匿名函数,并执行以下操作:

function toggleNav (evt) {
    var clicked = $(this).parent().attr("class");
    $("#nav").removeClass("btn1 btn2 btn3 btn4 btn5 btn6 btn7").addClass(clicked);
    evt.preventDefault();
}

答案 2 :(得分:2)

这看起来更有前途

$(function($) {
  $("#nav > li > a").on("click", function(evt) {
    evt.preventDefault();
    var clicked = $(this).parent().attr("class");
    $("#nav").removeClass("btn1 btn2 btn3 btn4 btn5 btn6 btn7").addClass(clicked);
  });
});

答案 3 :(得分:0)

这是一个语法问题,你在那里使用了两次function关键字。选择您要使用的方式。你可以做任何一件事。