1

我正在尝试从另一个对象访问在一个对象中声明的变量,它不起作用
我的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 );
4

4 回答 4

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 );

http://jsfiddle.net/txvzq/2/

于 2013-09-25T07:25:55.957 回答
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 );
于 2013-09-25T07:34:53.973 回答
0

两种不同的范围...

你应该做这样的事情(创建对象并且只有在调用这些对象方法之后:

;(function( $ ){ 
 window.homePage = {}
 // ...
});

;(function($) {
 window.homePage = window.homePage || {};
 window.homePage.tooltipshowhide();
 // ...
});
于 2013-09-25T07:25:28.253 回答
0

将变量放在 homePage 对象之外。

于 2013-09-25T07:26:36.487 回答