【问题标题】:Uncaught SyntaxError: Unexpected identifier - error in Chrome VMUncaught SyntaxError: Unexpected identifier - Chrome VM 中的错误
【发布时间】:2015-07-19 14:10:57
【问题描述】:

我有这个非常简单的代码,它可以工作,但它在 Chrome 的 VM3197:1 中返回“未捕获的语法错误:意外的标识符” 我应该怎么做才能摆脱它?代码对我来说似乎没问题...我正在运行的唯一其他代码是 jQuery 和 html5 样板 sn-p 以消除不支持它​​的浏览器中的控制台错误。

jQuery(document).ready(function($) {

    var app = (function () {

        var toggleMenu = function(){
            var $offcanvasMenu = $('.offcanvas');
            $offcanvasMenu.toggleClass('-display');
            setTimeout($offcanvasMenu.toggleClass('-show'), 1000);
        };

        return {
            toggleMenu : toggleMenu
        };

    })();

    $('.icon-bars').on('click', function() {
        app.toggleMenu();
    });

});

【问题讨论】:

  • 那个代码块看起来不错。你确定是那个部分导致了问题吗?
  • 不相关:您的 setTimeout 代码不正确。
  • @vinayakj:那么提及它没有多大价值。像这样在就绪处理程序中将 jQuery 别名为 $ 是一种常见模式。
  • 当我点击 VM 时,什么都没有显示。我已经修复了错误的 setTimeout,但事情已经消失了......

标签: javascript jquery


【解决方案1】:

为了摆脱意外错误,请尝试更正您的代码结构。

setTimeout 期望第一个参数是一个函数,所以这里需要一个匿名函数:

setTimeout( function(){
    $offcanvasMenu.toggleClass('-show');
}, 1000);

【讨论】:

  • 1) 完全错误。请从您的帖子中删除它以做出一个体面的回答。
  • 不,它没有(你可以自己试试)。您可能想阅读How do JavaScript closures work?
猜你喜欢
  • 1970-01-01
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 2017-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多