javascript对象文字模式构造函数错误
我试图使用对象文字模式组织代码,但出现了一个错误: 未捕获引用错误:未定义backToTop 你知道为什么吗 代码如下:javascript对象文字模式构造函数错误,javascript,jquery,Javascript,Jquery,我试图使用对象文字模式组织代码,但出现了一个错误: 未捕获引用错误:未定义backToTop 你知道为什么吗 代码如下: (function($){ var Mk = { config: {}, init: function(config) { backToTop(); wow(); progressBarAnimation(); slabText(); }, backToTop: function()
(function($){
var Mk = {
config: {},
init: function(config) {
backToTop();
wow();
progressBarAnimation();
slabText();
},
backToTop: function() {
$('body').append('<div id="toTop" class="btn btn-success"><span class="glyphicon glyphicon-chevron-up"></span> Back to Top</div>');
$(window).scroll(function () {
if ($(this).scrollTop() != 0) {
$('#toTop').fadeIn();
} else {
$('#toTop').fadeOut();
}
});
$('#toTop').click(function(){
$("html, body").animate({ scrollTop: 0 }, 600);
return false;
});
},
wow: function() {
var wow = new WOW({
boxClass: 'wow',
animateClass: 'animated',
offset: 0,
mobile: true,
live: true
});
wow.init();
},
progressBarAnimation: function() {
$.each($('div.progress-bar'),function(){
$(this).css('width', $(this).attr('aria-valuetransitiongoal')+'%');
});
},
slabText:function() {
$("h1.mklife").slabText({
"viewportBreakpoint":400
});
},
last:''
};
$(document).ready(Mk.init());
window.Mk = Mk;
})(jQuery)
(函数($){
var Mk={
配置:{},
初始化:函数(配置){
backToTop();
哇();
进展性炎症();
slabText();
},
backToTop:function(){
$('body')。追加('backtotop');
$(窗口)。滚动(函数(){
如果($(this).scrollTop()!=0){
$('#toTop').fadeIn();
}否则{
$('#toTop').fadeOut();
}
});
$('#toTop')。单击(函数(){
$(“html,body”).animate({scrollTop:0},600);
返回false;
});
},
哇:函数(){
var wow=新wow({
boxClass:‘哇’,
animateClass:“已设置动画”,
偏移量:0,
手机:是的,
现场直播:真的
});
wow.init();
},
progressBarAnimation:函数(){
$.each($('div.progress-bar'),函数(){
$(this.css('width',$(this.attr('aria-valuetransitingoal')+'%”);
});
},
slabText:function(){
$($h1.mklife”).slabText({
“视口断点”:400
});
},
最后:''
};
$(document).ready(Mk.init());
window.Mk=Mk;
})(jQuery)
- 编辑:我错过了documentready:$(document.ready(Mk.init())上的实际函数调用括号李>
backToTop
,wow
,progressBarAnimation
,slabText
是Mk对象的方法,访问它们时引用Mk对象
init: function(config) {
Mk.backToTop();
Mk.wow();
Mk.progressBarAnimation();
Mk.slabText();
},
或者,由于init也是同一对象的一个方法,因此您可以使用this
关键字访问该函数
init: function(config) {
this.backToTop();
this.wow();
this.progressBarAnimation();
this.slabText();
},
函数
backToTop
,wow
,progressBarAnimation
,slabText
是Mk对象的方法,访问它们时引用Mk对象
init: function(config) {
Mk.backToTop();
Mk.wow();
Mk.progressBarAnimation();
Mk.slabText();
},
或者,由于init也是同一对象的一个方法,因此您可以使用this
关键字访问该函数
init: function(config) {
this.backToTop();
this.wow();
this.progressBarAnimation();
this.slabText();
},
backToTop不是全局变量,因此需要使用对象表示法(this.backToTop)调用它
上面的解决方案会起作用,但我建议使用显示模块设计模式的更简洁的方法,请查看此链接(以及页面底部的参考资料)了解如何实现它backToTop不是一个全局变量,因此需要使用对象表示法调用它(this.backToTop)
上面的解决方案会起作用,但我建议使用显示模块设计模式的更简洁的方法,请查看此链接(以及页面底部的参考资料)了解如何实现它您在同一对象中引用了一个函数,因此请使用此.backToTop();相反,您引用的是同一对象中的函数,所以请使用以下命令:backToTop();相反