我通过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
});
这怎么可能发生?
答案 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客户端,可以很好地处理这些问题。
答案 2 :(得分:0)
在Chrome中打开该页面,然后使用您的javascript查找源文件,然后点击{}
按钮,这将为您格式化代码,以便您可以确定错误的位置。