我做这样的模态:
<%= link_to "versão resumida", resumed_rep_life_animal_path(animal, :partial => true), 'data-toggle' => 'modal', 'data-target' => '#myModal', 'data-no-turbolink' => true %>
<div class="modal hide fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-body"></div>
<div class="modal-footer">
<button class="btn btn-primary" data-dismiss="modal" aria-hidden="true">Fechar</button>
</div>
</div>
但是,data-no-turbolink
没有按预期工作。如果我刷新页面,它可以正常工作,但是,当我使用turbolinks浏览页面时,看起来只是忽略了data-no-turbolink
。
我做错了吗?我有一些模态,如我的应用程序中的示例,不想删除它们,也不想删除turbolinks ......
提前致谢。
答案 0 :(得分:7)
正如davydotcom所说,模态不起作用的原因是因为它们被$(document).ready
而不是$(document).on('page:change')
绑定,这是turbolinks使用的。
jquery-turbolinks gem将使它成为现成的调用也会响应turbolink的页面:更改调用。
第1步: 将gem jquery-turbolinks
添加到您的Gemfile中。
第2步: 按以下顺序将其添加到JavaScript清单文件中:
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//
// ... your other scripts here ...
//
//= require turbolinks
第3步: 重启服务器。吊杆!
答案 1 :(得分:2)
data-no-turbolinks不是问题......
看起来bootstrap js开箱即用只监视document.ready,而bootstrap JS可能需要修改以检查页面:load以及
这只会在第一个包含bootstrap的请求中触发。它需要修改为在页面上触发:加载。
我可以提出的一个建议是使用gem'twitter-bootstrap-turbo'获取引导程序。这是twitter-bootstrap-rails的一个分支,增加了turbolinks处理程序。