Ruby on rails 3 获取alertify以使用TurboLink

Ruby on rails 3 获取alertify以使用TurboLink,ruby-on-rails-3,turbolinks,alertify,Ruby On Rails 3,Turbolinks,Alertify,我正在尝试在rails 3应用程序中使用TurboLink。一切正常,只是Alertify在页面更改后停止工作 我已经安装了jquery turbolinks gem来修补它,但这没有任何效果 我也尝试过包装alertify函数并在第页触发它:change,但同样没有乐趣 有人对turbolinks有意见吗?据我所知,turbolinks会扰乱全局范围,从而阻止警报与DOM正确连接 因此,我的工作是: //Keep global reference to alertify init() f

我正在尝试在rails 3应用程序中使用TurboLink。一切正常,只是Alertify在页面更改后停止工作

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

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


有人对turbolinks有意见吗?

据我所知,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();
    });

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

Alertify.dialog.el = false
// Do your normal JS stuff
在我的粗略理解中,Alertify认为已经创建了一个对话框元素,但当Turbolinks加载页面时,它会破坏该元素。我们需要告诉Alertify它已被销毁,Alertify将重新创建它


如果您需要任何具体帮助,请告诉我。

这对我不起作用。修复导致另一个错误,引用了旧的alertify实例,但找不到。你救了我一天!对于任何从alertify 3.x升级到4的人来说,
alertify
不再存在于全局名称空间中。如果希望一切都像以前一样正常工作,请添加此
alertify=alertify.dialog