Javascript 使用Rails显示JS模态的问题
我正在尝试对Rails flash消息使用modals,以输出:通知或:错误。我只想在页面更改时显示它们,但我只能在加载文档时让它们工作。但它总是处于活动状态 在application.html.erb中,我使用:Javascript 使用Rails显示JS模态的问题,javascript,jquery,ruby-on-rails,materialize,Javascript,Jquery,Ruby On Rails,Materialize,我正在尝试对Rails flash消息使用modals,以输出:通知或:错误。我只想在页面更改时显示它们,但我只能在加载文档时让它们工作。但它总是处于活动状态 在application.html.erb中,我使用: <% flash.each do |name, msg| %> <% if msg.is_a?(String) %> <div id="modal1" class="modal"> <div c
<% 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 %>
我试着检查字符串是否也不是null,或者长度是否大于零,但这不会改变任何事情。除非我使用:
var ready;
ready = function() {
$('#modal1').openModal();
}
$(document).ready(ready);
$(document).on('page:load', ready);
它可以工作,但每次重新加载页面时都会显示,无论是否显示flash消息,我不希望出现这种行为。当我更改为$(文档).on('page:change',ready)时代码>单击模式关闭按钮后,窗口保持黑暗
如果有帮助的话,我会使用物化ECS
为什么这些支票不起作用?我尝试了不同的if语句和检查,但都没有显示模态。任何帮助都将不胜感激
亲切的问候
对于那些想知道它是如何工作的人。1)js代码中有一个错误,2)我必须为if-then使用不同的逻辑
var ready;
ready = function() {
var modal1 = document.getElementById('modal1');
if (modal1 !== null) {
$('#modal1').openModal();
}
};
$(document).ready(ready);
$(document).on('page:load', ready);
此行包含错误:var modal1=document.getElementById('#modal1')
您需要删除#
,如下所示:var modal1=document.getElementById('modal1')代码>。我不知道你为什么在那里使用原始JavaScript,当你在其他地方使用jQuery时……谢谢@dwenzel。我纠正了错误,也更改了if逻辑。因为length>0
不起作用,因为变量导致[object htmldevelment]
我选择了modal1!==空
。通过这种方式,一切都能正常工作。我将原始js与jquery混合的原因很简单。我在这个主题上的知识还不够广泛,随着我的项目取得成功,我将更好地了解jquery,并可能更好地利用它。:)非常感谢。
var ready;
ready = function() {
var modal1 = document.getElementById('modal1');
if (modal1 !== null) {
$('#modal1').openModal();
}
};
$(document).ready(ready);
$(document).on('page:load', ready);