$(window).bind(' load' ...);没有触发

时间:2015-06-09 14:12:37

标签: javascript jquery backbone.js requirejs

我目前正在制作一个Web应用程序,只打开一个实例。这是通过在应用程序加载时设置/检查的cookie来完成的,并在关闭应用程序时将其删除。我设置cookie的逻辑我已经解决了,但是我遇到了触发它的问题。

我的网络应用程序是使用require.js和backbone.js构建的。在我的main.js文件中,我将对单个实例逻辑的调用绑定到loadunload事件,如下所示。

requirejs(['jquery', 'router', 'singleInstance'], function ($, Router, SingleInstance) {
    //TODO fix load event is not triggering...
    $(window).bind('load', function () {
        SingleInstance.setSingleInstance();
    });
    $(window).bind('unload', function () {
        SingleInstance.removeSingleInstace();
    });

通过设置对setSingleInstance()removeSingleInstance()的调用的断点,我发现removeSingleInstance()会被调用,就像卸载事件一样,但是setSingleInstance()不是被叫。如何将此调用绑定到load事件?

1 个答案:

答案 0 :(得分:1)

问题是,当你绑定监听器时,窗口已经加载,因此不会触发回调函数。如果它没有副作用,请立即在requirejs回调中调用SingleInstance.setSingleInstance();

  

我想使用窗口加载事件的风格原因来匹配卸载

好吧,它阻止了你的代码工作。