jQuery只能在警报后使用值

时间:2014-01-29 14:57:50

标签: javascript jquery cookies

我不确定该怎么找这个,谷歌没有给我带来很多结果,但可能是我在寻找错误的东西。

我正在编写一个使用jQuery cookie插件的应用程序。在大多数情况下,它工作正常。我有一段不能100%工作的代码

    var name = $.cookie('appview');
    this.changeStateToViewing( name );  

这不起作用。我还尝试了name = name + ""name.toString()以及String(name)

我只有两种方法可以在我的程序中获得appview的值。

  • 当我使用提醒功能打印appview的值时,它可以正常工作
  • 当我调试程序并在其运行的表达式中查看appview

如果我让程序运行,则没有结果。

但是当我使用警报时

我不确定发生了什么。我正在使用Firefox。

这是我的示例代码

Application.prototype.changeStateToViewing = function( name ) {
    this.setViewing(name);
    this.viewingDiv.fadeIn( 250, function(){} );
    this.gitDiv.fadeIn( 250, function(){} );
    this.markdownDiv.fadeIn( 250, function(){} );
    this.appState = EApplicationState.VIEWING;
    $.cookie('appstate', 'viewing');
    $.cookie('appview', name);
}

Application.prototype.setViewing = function( name ) {
    $("#viewingusername").text(name);
}

编辑:我注意到在刷新浏览器后,$('#viewingusername').text("LKDSJFDSJFLKJDSLKFJDSLKFj")无法正常工作,计时问题?

1 个答案:

答案 0 :(得分:0)

原因可能是您存储了太多cookie。你可以清除cookie然后重试。并且解决方法可能是设置setTimeout有一些延迟(但这是不好的做法,因为我们仍然不知道如何获取cookie的时间。)

var name = $.cookie('appview');
setTimeout(function(){
    this.changeStateToViewing(name); 
},500)