【问题标题】:Jslint missing semicolon errorJslint 缺少分号错误
【发布时间】:2012-04-26 19:04:31
【问题描述】:

用整个代码编辑:第 17 行现在是 33。

我在http://www.javascriptlint.com 中运行了这段代码,它说第 33 行缺少分号。我添加了它,但它破坏了一切。谁能帮我找出错误?

$(document).ready(function () {

    var $container = $('.row');

    $container.imagesLoaded(function () {
        $container.masonry({
            itemSelector: '.post',
            columnWidth: 1
        });
    });


    $container.infinitescroll({
        navSelector: '#page-nav',
        nextSelector: '#page-nav a',
        itemSelector: '.post',
        loading: {
            finishedMsg: "No more entries to load.",
            img: "http://static.tumblr.com/7wtblbo/hsDlw78hw/transparent-box.png",
            msgText: "Loading..."
        },
        debug: true,
        bufferPx: 5000,
        errorCallback: function () {
            $('#infscr-loading').animate({
                opacity: 0.8
            }, 2000).fadeOut('normal')
        },  
    },

    function (newElements) {
        var $newElems = $(newElements).css({
            opacity: 0
        });
        $newElems.imagesLoaded(function () {
            $newElems.animate({
                opacity: 1
            });
            $container.masonry('appended', $newElems, true);
        });
    });


    $(window).resize(function () {
        $('.row').masonry();
    });


    setTimeout(function () {
        $container.masonry({
            appendedContent: $(newElements)
        });
        /* repair audio players*/
        $('.audio').each(function () {
            var audioID = $(this).attr("id");
            var $audioPost = $(this);
            $.ajax({
                url: '/api/read/json?id=' + audioID,
                dataType: 'jsonp',
                timeout: 50000,
                success: function (data) {
                    $audioPost.append('\x3cdiv style=\x22background-color:white;height:30px\x22 class=\x22audio_player\x22\x3e' + data.posts[0]['audio-player'] + '\x3c/div\x3e');
                }
            });
        });


    }, 2000);
});

【问题讨论】:

    标签: jquery jslint


    【解决方案1】:

    删除 , 第 16 行是错误的!
    和第 17 行一样!

    【讨论】:

    • 完成。它仍然说'缺少分号'和'SyntaxError:属性列表后缺少}'编辑:看到你编辑了帖子。如果我删除 ,它会说缺少分号。
    • 真的吗?它在结束之后 }
    【解决方案2】:

    }, 2000).fadeOut('normal');

    errorCallback: function () { 
        $('#infscr-loading').animate({ 
            opacity: 0.8 
        }, 2000).fadeOut('normal');
    }  
    

    更新:

    $container.infinitescroll({ 
        navSelector: '#page-nav', 
        nextSelector: '#page-nav a', 
        itemSelector: '.post', 
        loading: { 
            finishedMsg: "No more entries to load.", 
            img: "http://static.tumblr.com/7wtblbo/hsDlw78hw/transparent-box.png", 
            msgText: "Loading..." 
        }, 
        debug: true, 
        bufferPx: 5000, 
        errorCallback: function () { 
            $('#infscr-loading').animate({ 
                opacity: 0.8 
            }, 2000).fadeOut('normal');
        }
    });
    

    【讨论】:

    • 谢谢。第 16 行:已解决。它现在说第 17 行的“尾随逗号在 ECMA-262 对象初始化程序中是不合法的”。
    • 尝试将我的答案与@Arth 的答案结合起来。
    • 谢谢。它现在是 js lint 上的有效代码,但它以这种方式破坏了插件。我用整个代码编辑了帖子。
    • 不。仍然破坏插件。我猜第 28 行必须保留 a ,即使它不是有效代码。
    • @Barbara - 考虑到我没有提到“插件”,我认为我无能为力。我提供的是基本的 jQuery/JSON 语法。如果您需要其他方面的帮助,我建议您提出一个新问题。
    【解决方案3】:

    进行以下更改:

    • 第 27 行:添加分号
    • 第 28 行:删除逗号

    行号用于编辑代码

    【讨论】:

      猜你喜欢
      • 2013-09-07
      • 2011-11-26
      • 1970-01-01
      • 2022-01-13
      • 2021-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多