2

我正在尝试在 rails 3 应用程序中使用 turbolinks。一切都很好,除了 Alertify 在页面更改后停止工作。

我已经安装了 jquery-turbolinks gem 来修补它,但这没有任何效果。

我也尝试过包装 alertify 函数并在 page:change 上触发它,但同样没有乐趣。

有人对 turbolinks 有问题吗?

4

2 回答 2

2

任何使用 Alertify 0.4.0(当前为 RC1)遇到此问题的人都可以通过重置您正在使用的 Alertify 元素来解决此问题。就我而言,它是 Alertify.dialog:

Alertify.dialog.el = false
// Do your normal JS stuff

在我对此的粗略理解中,Alertify 认为已经创建了一个对话框元素,但是当 Turbolinks 加载页面时,它会破坏该元素。我们需要告诉 Alertify 它已被销毁,Alertify 将重新创建它。

如果您需要任何有关细节的帮助,请告诉我。

于 2013-05-15T00:00:12.410 回答
1

据我所知,Turbolinks 与全局范围混淆,这会阻止警报与 DOM 正确连接。

因此,我的工作是:

   //Keep global reference to alertify init() function
    $(document).on('ready',function(){
     window alertifyInit = alertify.init;
    });
    //re-initialise on page change/load
    $(document).on('page:change page:load',function(){
        alertifyInit();
    });
于 2013-04-29T11:23:16.303 回答