使用Rails显示JS Modals的问题

时间:2015-12-03 15:29:43

标签: javascript jquery ruby-on-rails materialize

我正在尝试将模式用于Rails flash消息,输出:notices或:errors。我只想在页面更改时显示它们,但是只有在加载文档时我才能让它们工作。但它始终是活跃的。

在application.html.erb中我使用:

<% flash.each do |name, msg| %>
    <% if msg.is_a?(String) %>
        <div id="modal1" class="modal">
            <div class="modal-content">
                <p><%= msg %></p>
            </div>
            <div class="modal-footer">
                <a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Close</a>
            </div>
        </div>
    <% end %>
<% end %>

在我的application.js文件中,我使用:

var ready;
ready = function() {
    var modal1 = document.getElementById('#modal1');

    if (modal1.length > 0) {
        $('#modal1').openModal();
    }
};
$(document).ready(ready);
$(document).on('page:load', ready);

我尝试检查字符串是否也为空,或者长度大于零,但这不会改变事物。只有我使用:

var ready;
ready = function() {
    $('#modal1').openModal();
}
$(document).ready(ready);
$(document).on('page:load', ready);

它可以工作,但每次重新加载页面时都会显示它,是否显示了flash msg,我不想要这种行为。当我更改为$(document).on('page:change', ready);时,单击模态关闭按钮后窗口会变暗。

如果有帮助,我会使用materializecss。

为什么这些检查不起作用?我尝试了不同的if语句和检查,但都导致模态没有显示。任何帮助将不胜感激。

亲切的问候。

对于那些想知道它是如何工作的人。有1)js代码中的错误和2)如果那时我必须使用不同的逻辑。

var ready;
ready = function() {
var modal1 = document.getElementById('modal1');
if (modal1 !== null) {
    $('#modal1').openModal();
}
};
$(document).ready(ready);
$(document).on('page:load', ready);

0 个答案:

没有答案