SyntaxError:函数语句需要一个名称
SyntaxError: function statement requires a name
我对这个错误感到困惑,我在没有点击等事件的情况下会出现这个错误。是的,我在这里使用了搜索,但在所有情况下,我发现情况都是另一个问题。
"SyntaxError:function statement requires a name"是firebug在页面刷新后抛出的:onGoTo:function(evt){
这是我的功能:
function exampleFc(ctx){
'use strict';
var goTo = $('a[href*=#]',this.$ctx);
goTo.on('click',$.proxy(this.onGoTo,this));
onGoTo:function(evt){
evt.preventDefault();
var elem = $(evt.currentTarget).attr('href');
if(elem.length > 1){
$('html,body').animate({
scrollTop: $(elem).offset().top
}, 700, function (){location.hash = elem;});
}
return false;
}
};
怎么了?我想通过捕捉点击事件来调用函数onGoTo。
语法不正确。该语法只能在对象内部使用。
var obj = { onGoTo: function(){ } }
在对象以外的区域,您应该使用以下语法:
var onGoTo = function( ) { }; // function declaration
onGoto() // function call
或者,如果是您的代码,
this.onGoTo = function() {}; // function declaration
this.onGoTo(); // function call
最后你的代码应该是这样的:
function exampleFc(ctx){
'use strict';
var goTo = $('a[href*=#]',this.$ctx);
goTo.on('click',$.proxy(this.onGoTo,this));
this.onGoTo = function(evt) {
evt.preventDefault();
var elem = $(evt.currentTarget).attr('href');
if(elem.length > 1){
$('html,body').animate({
scrollTop: $(elem).offset().top
}, 700, function (){location.hash = elem;});
}
return false;
}
}
ok,正如Prakash GPz已经说过的那样,语法是错误的。
我的解决方案是:
function exampleFc(ctx){
'use strict';
var onGoTo = function(evt){
evt.preventDefault();
var elem = $(evt.currentTarget).attr('href');
if(elem.length > 1){
$('html,body').animate({
scrollTop: $(elem).offset().top
}, 700, function (){location.hash = elem;});
}
return false;
};
var goTo = $('a[href*=#]',ctx);
goTo.on('click',onGoTo));
};
顺便说一下,上面的函数可以用来滚动DOM中的任何位置。请确保滚动链接有一个以#-Symbol开头的href属性,并且该id存在。
最佳
这一行导致错误
onGoTo:function(evt){
因为在函数内部,不能使用对象语法,必须使用=
而不是:
var onGoTo = function(evt){
请注意,代理对象是es6实现的一部分。
相关文章:
- 我可以在json对象中添加一个函数吗
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在另一个函数中使用变量this
- 在另一个函数成功结束后调用该函数
- mongoose.connect undefined不是一个函数
- 监听器必须是一个函数
- 使用JS函数来使用另一个函数的语法?node.js
- 如何取消object.prototypes javascript的一个函数
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 嵌套到另一个函数中的Fancybox函数;不起作用
- 如何在javascript中使用不止一个函数
- jQuery-在页面加载时执行一个函数
- jquery UI draggable:UI.children不是一个函数
- jQuery Mobile Undefined不是一个函数
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- JS异常:animate不是一个函数
- 如何将一个函数附加到一个不存在的元素上
- JavaScript/jQuery-添加添加和删除类与下一个函数之间的延迟