我试图访问另一个对象在一个对象中声明的变量,这里它不能正常工作
我的 jsfiddle
我的剧本:
$(function(){
homePage.tooltipshowhide();
homePage.hidetooltip();
});
(function( $ ){
homePage = {
tooltipshowhide:function(){
var time = 0;
$('.toggle-ttp').tooltip({html:true,placement: 'bottom',trigger: 'manual'}).tooltip('show');
time = setInterval(homePage.hidetooltip, 4000);
},
hidetooltip:function(){
clearInterval(time);
$('.toggle-ttp').tooltip('destroy');
$('.toggle-ttp').tooltip({html:true});
$('#continueBtnTop').removeClass('toggle-ttp');
}
};
})( jQuery );
答案 0 :(得分:1)
您可以通过在函数外部定义变量并更改其范围来执行此操作:
(function( $ ){
homePage = {
toimeone: 0,
tooltipshowhide:function(){
$('.toggle-ttp').tooltip({html:true,placement: 'bottom',trigger: 'manual'}).tooltip('show');
this.toimeone = setInterval(homePage.hidetooltip, 4000);
},
hidetooltip:function(){
clearInterval(this.toimeone);
$('.toggle-ttp').tooltip('destroy');
$('.toggle-ttp').tooltip({html:true});
$('#continueBtnTop').removeClass('toggle-ttp');
}
};
})( jQuery );
答案 1 :(得分:1)
其中一个解决方案是从对象中定义时间变量,另一个解决方案是将此变量定义为像这样的对象字段
$(function(){
homePage.tooltipshowhide();
homePage.hidetooltip();
});
(function( $ ){
homePage = {
time: 0,
tooltipshowhide:function(){
$('.toggle-ttp').tooltip(
{html:true,placement: 'bottom',trigger: 'manual'}).tooltip('show');
this.time = setInterval(homePage.hidetooltip, 4000);
},
hidetooltip:function(){
clearInterval(this.time);
$('.toggle-ttp').tooltip('destroy');
$('.toggle-ttp').tooltip({html:true});
$('#continueBtnTop').removeClass('toggle-ttp');
}
};
})( jQuery );
答案 2 :(得分:0)
两个不同的范围......
你应该做这样的事情(创建对象并且只在调用这些对象方法之后:
;(function( $ ){
window.homePage = {}
// ...
});
;(function($) {
window.homePage = window.homePage || {};
window.homePage.tooltipshowhide();
// ...
});
答案 3 :(得分:0)
将变量放在homePage对象之外。