奇怪的JavaScript控制台错误

时间:2014-06-11 21:58:02

标签: javascript jquery syntax-error

我通过FTP上传服务器上的js文件后,没有执行任何功能,我收到此错误:

Uncaught SyntaxError: Unexpected identifier 

当我检查代码时,所有代码都搞砸了,所有代码都在这一行上:

                $(function(){   var $document = $(document),    $element = $('.navbar-fixed-top'),  className = 'hasScrolled';  $document.scroll(function() {   $element.toggleClass(className, $document.scrollTop() >= 50);   }); $('#home').parallax("60%", 0.7);    $('#services').parallax("60%", 0.7);    $('#skills').parallax("60%", 0.2);  $('#testimonials').parallax("60%", 0.3);    }); $(window).load(function() { $('#portfolio-slider').flexslider({ animation: "fade",  directionNav: true, useCSS: false,  controlNav: false,  }); }); var url ='img/icons.svg';   var c=new XMLHttpRequest(); c.open('GET', url, false); c.setRequestHeader('Content-Type', 'text/xml'); c.send();    document.body.insertBefore(c.responseXML.firstChild, document.body.firstChild)  $(document).ready(function() {  $('.portfolio-item').hover(function(){  $(this).find(".caption").fadeIn(500)    },function(){   $(this).find(".caption").fadeOut(500)   })  $( ".search-btn" ).click(function() {   $( "input.filter__search" ).show( "slow" ); e.preventDefault(); }); var touch = Modernizr.touch,    badIE = $('html').hasClass('lt-ie10');  $('.img-holder').imageScroll({  imageAttribute: (touch === true) ? 'image-mobile' : 'image',    parallax: !badIE,   coverRatio: 0.8,    container: ".bg-portfolio", touch: touch    }); $('.tabs-blog').tabslet({   mouseevent: 'click',    attribute: 'href',  animation: true }); $('.tabs-testimonials').tabslet({   mouseevent: 'click',    attribute: 'href',  animation: true,    autorotate: true,   delay: 9000 }); }); $(window).load(function() { $('.flexslider').flexslider({   animation: "fade",  slideshow:false,    directionNav: false }); var mySwiper = $('.swiper-container').swiper({  mode:'horizontal',  loop: false,    freeMode: true, freeModeFluid: true,    grabCursor: true,   autoplay: 5000, autoplayDisableOnInteraction: true, calculateHeight: true,  resizeReInit: true, scrollbar: {    container : '.swiper-scrollbar',    draggable : true,   hide: false,    snapOnRelease: true }   }); }); $(document).ready(function(){   $('.tabs').tabslet({    mouseevent: 'click',    attribute: 'href',  animation: true,    autorotate: true,   delay: 9000 }); $('.venobox').venobox();    }); new Share(".social-share", {    networks: { facebook: { app_id: "abc123"    }   },  ui: {   flyout:  'bottom center',   button_background: 'none',  button_color:'#fff' });

这很奇怪,因为在我的编辑器(Sublime Text 2)中,代码组织得当。

以下是代码:

    $.scrollIt ({
upKey: 38,
downKey: 40,
scrollTime: 600,
activeClass: 'active',
onPageChange: null,
topOffset: -40
});


$(function(){
var $document = $(document),
$element = $('.navbar-fixed-top'),
className = 'hasScrolled';
$document.scroll(function() {
$element.toggleClass(className, $document.scrollTop() >= 50);
});

$('#home').parallax("60%", 0.7);
$('#services').parallax("60%", 0.7);
$('#skills').parallax("60%", 0.2);
$('#testimonials').parallax("60%", 0.3);
});

$(window).load(function() {
$('#portfolio-slider').flexslider({
animation: "fade",
directionNav: true,
useCSS: false,
controlNav: false,
});
});

var url ='img/icons.svg';
var c=new XMLHttpRequest(); c.open('GET', url, false); c.setRequestHeader('Content-Type', 'text/xml'); c.send();
document.body.insertBefore(c.responseXML.firstChild, document.body.firstChild)

$(document).ready(function() {
$('.portfolio-item').hover(function(){
$(this).find(".caption").fadeIn(500)
},function(){
$(this).find(".caption").fadeOut(500)
})
$( ".search-btn" ).click(function() {
$( "input.filter__search" ).show( "slow" );
e.preventDefault();
});

var touch = Modernizr.touch,
badIE = $('html').hasClass('lt-ie10');
$('.img-holder').imageScroll({
imageAttribute: (touch === true) ? 'image-mobile' : 'image',
parallax: !badIE,
coverRatio: 0.8,
container: ".bg-portfolio",
touch: touch
});

$('.tabs-blog').tabslet({
mouseevent: 'click',
attribute: 'href',
animation: true
});

$('.tabs-testimonials').tabslet({
mouseevent: 'click',
attribute: 'href',
animation: true,
autorotate: true,
delay: 9000
});
});

$(window).load(function() {
$('.flexslider').flexslider({
animation: "fade",
slideshow:false,
directionNav: false
});
var mySwiper = $('.swiper-container').swiper({
mode:'horizontal',
loop: false,
freeMode: true,
freeModeFluid: true,
grabCursor: true,
autoplay: 5000,
autoplayDisableOnInteraction: true,
calculateHeight: true,
resizeReInit: true,
scrollbar: {
container : '.swiper-scrollbar',
draggable : true,
hide: false,
snapOnRelease: true
}
});
});

$(document).ready(function(){
$('.tabs').tabslet({
mouseevent: 'click',
attribute: 'href',
animation: true,
autorotate: true,
delay: 9000
});

$('.venobox').venobox();
});

new Share(".social-share", {
networks: {
facebook: {
app_id: "abc123"
}
},
ui: {
flyout:  'bottom center',
button_background: 'none',
button_color:'#fff'
});

如果我在Firefox上测试它,我会收到此错误:

SyntaxError: missing ; before statement 

并且代码看起来很乱。 有什么不对? 有JavaScript问题吗?与服务器有关吗?因为如果我在Firefox上本地测试它,代码看起来就像在文本编辑器中(而不是凌乱)并收到不同的错误:

SyntaxError: missing } after property list

更新 在我将网络服务器上的文件与本地计算机上的文件进行比较后,我发现网络服务器上的文件遗漏了这个:

    $.scrollIt ({
upKey: 38,
downKey: 40,
scrollTime: 600,
activeClass: 'active',
onPageChange: null,
topOffset: -40
});

这怎么可能发生?

3 个答案:

答案 0 :(得分:1)

我怀疑您的错误来自您的代码部分,例如以下内容 - 您忽略了; - 请参阅????。即使在一条线上,JS仍然可以工作 - 这就是缩小版本的工作原理。半冒号严格遵守:

.... document.body.firstChild)????$(document).ready(function() {.....

应该是:     .... document.body.firstChild); $(document).ready(function(){.....

.... $(this).find(".caption").fadeOut(500) })????$(".search-btn").click(function () { ...

应该是:

.... $(this).find(".caption").fadeOut(500) });$(".search-btn").click(function () { ...

.... ui: { flyout: 'bottom center',button_background: 'none',button_color: '#fff' }????);...

应该是:

.... ui: { flyout: 'bottom center',button_background: 'none',button_color: '#fff' }});...

如果没有换行符,那么告诉JS解释器声明结束的地方是;

HERE IS ANOTHER EXAMPLE这对我来说太难了 - Uncaught SyntaxError:意外的标识符

另一个严重错误---最后丢失} - 现在你必须将视差插件添加到jQuery中。 ---> Other demo

答案 1 :(得分:0)

此错误主要是由于编码问题或新线差异而发生的。尝试更改您的FTP客户端。 FileZilla是一个免费的FTP客户端,可以很好地处理这些问题。

https://filezilla-project.org/

答案 2 :(得分:0)

在Chrome中打开该页面,然后使用您的javascript查找源文件,然后点击{}按钮,这将为您格式化代码,以便您可以确定错误的位置。

enter image description here