$(window).bind('load' ... );不触发

$(window).bind('load' ... ); not triggering

我目前正在努力使 Web 应用程序只打开一个实例。这是通过加载应用程序时 set/checked 和关闭应用程序时删除的 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 事件?

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

I would like to use the window load event for style reasons to match the unload

嗯,它会阻止您的代码工作。