2015-08-09 51 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> 

加「模式觸發」,它應該工作,我也不知道你爲什麼使用數據切換。