2015-08-09 129 views
1

我在尝试使模式表单弹出以添加新评论。MaterialiseCSS模式不能在rails中工作

HTML摘录

<a href="#add_ac" data-toggle="modal" class="waves-effect waves-light blue accent-2 white-text btn">Add Comment</a> 

<div id="add_ac" class="modal"> 
    <div class="modal_content"> 
    <%= render '/s_comments/form' %> 
    </div> 
</div> 

我试图使用链接触发模式

这是在模型中的javascript文件(admin.js)

$('.modal-trigger').leanModal({ 
    dismissible: true 
    }); 

根据应该工作的物化css文档。

以下是在标题为我的application.js文件

//= require jquery2 
//= require jquery_ujs 
//= require turbolinks 
//= require materialize-sprockets 
//= require_tree . 

谢谢。

回答

3

我知道这个问题是真的老了,但我想分享以防别人正在运行进入这个问题。

如果您使用TurboLinks(这是Rails中的标准),那么将侦听器附加到按钮的JavaScript需要放在主体中而不是文档的头部。 TurboLinks仅替换主体,因此当您加载新页面时,JavaScript不会再次运行。

+0

这是否意味着我需要包含一个单独的js文件并将其加载到主体中?我对Rails还是比较陌生,以及如何处理大量资产。 – jabbajac

+0

@jabbajac我只需要包括下面发布的js MuteMinute。你可以将它包含在另一个文件中,但我只是把它放在视图中:javascript标记。我不知道这只是一个HAML标签,或者它也适用于ERB。 – kingcoin

0

要初始化模式类 “模式触发” 的,

$('.modal-trigger').leanModal({ 
dismissible: true 

});

,但你是不是调用/引用类的锚标记

<a href="#add_ac" data-toggle="modal" class="waves-effect waves-light blue accent-2 white-text btn">Add Comment</a> 

,所以你只需要在你的锚标记

<a href="#add_ac" data-toggle="modal" class=" modal-trigger waves-effect waves-light blue accent-2 white-text btn">Add Comment</a> 

加“模式触发”,它应该工作,我也不知道你为什么使用数据切换。