我一直无法弄清楚这件事的真相,但有人怀疑turbolinks是罪魁祸首。更改菜单只是为了确保这不是什么奇怪的mmenu问题。
我打开页面,点击菜单按钮--它起作用了,它打开了侧边菜单,我点击菜单中的一个链接,它就会返回到我的应用程序。菜单按钮就不会再触发了。最初,当我使用mmenu时,它似乎缺少与mmenu相关的click事件。对于sidr,它似乎就在那里,但什么也没有发生。
我这样设置了我的jquery
Rails 4: how to use $(document).ready() with turbo-links
示例sidr
<a id="simple-menu" href="#sidr">Menu link</a>
<div id="sidr">
<ul>
<li><a href="#">List 1</a></li>
<li class="active"><a href="#">List 2</a></li>
<li><a href="#">List 3</a></li>
</ul>
</div> 树中包含的JS文件
var ready;
ready = function() {
$('#simple-menu').sidr();
};
$(ready);
$(document).on('page:load', ready);我已经用jquery turbolinks gem设置了我的application.js。
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require bootstrap-sprockets
//= require jquery-ui/core
//= require jquery-ui/autocomplete
//= require jquery.mmenu.min
//= require_tree .
//= require turbolinks有什么建议吗?
发布于 2015-02-07 03:22:26
我对Mmenu和Turbolinks也有同样的问题。我已经按照evanbikes描述的那样做了。禁用turbolinks和Mmenu是有效的。但当启用它时,在菜单中单击一个链接后,它就不起作用了。其他一切都正常,我们所有的js-code。所以这一定和Turbolinks有关。
https://github.com/karlingen/rails4_mmenu
https://github.com/BeSite/jQuery.mmenu/issues/41
我很想使用Mmenu,但现在用Turbolinks是不可能的。
发布于 2015-04-26 03:48:35
尝尝这个。
安装'jquery-turbolinks‘https://github.com/kossnocorp/jquery.turbolinks
然后简单地
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require foundation
// Make sure to add your code here
// For example with foundation it is:
$(function(){ $(document).foundation(); });
//= require turbolinks
//= require_tree .
希望能有所帮助。至少它对我来说没什么问题。
发布于 2015-01-13 11:18:12
以下是一些想法:
1)确保您的javascript包含在头部,而不是主体的底部。由于Turbolinks每次都会重新加载正文,因此您将重新加载相同的javascript,并可能重新初始化重复的侦听器。
2)使用jquery.turbolinks gem,您应该只需要$(ready),而不需要$(document).on('page:load', ready)。理论上,这就是jquery.turbolinks为您做的事情。
3) ready真的启动了吗?你在里面放了一个console.log或alert来看吗?
4)在DOM准备好之后,您是否通过ajax或其他方式加载内容?如果是这样,您将需要在.sidr()实际出现在页面上时手动调用它,即使它在DOM就绪之后也是如此。
https://stackoverflow.com/questions/27832470
复制相似问题