我有一个导航栏菜单,以传统的水平导航栏格式显示。对于小屏幕尺寸,我想使用coffeescript删除带链接的nav元素,并将其附加到通过点击汉堡包链接激活的下拉菜单。
我遇到的麻烦是上述行为并不总是只执行约30%的时间。这让我想知道它的Turbolinks还是我对coffeescript的深刻无趣感?代码如下。我这样做了吗?
(。small)是我的CSS类隐藏在大于768的媒体查询
ready = ->
$( window ).resize(menuAdjust)
$('.hamburger').click ->
$('#hidden').toggle( )
menuAdjust = ->
if ($(".small").css("display") == "block")
$('#menu').appendTo('#hidden');
else
$('#menu').appendTo('#main')
$(document).ready(ready)
$(document).ready(menuAdjust)
$(document).on('page:load', ready)
答案 0 :(得分:1)
当用户调整浏览器窗口大小时,您的CoffeeScript代码才会触发menuAdjust
,因为您只注册了menuAdjust
ready()
回调,而不是'page:load'事件。例如,menuAdjust仅在整页刷新时触发,而不是Turbolinks页面加载。注册menuAdjust
也可以在Turbolinks页面加载事件上执行:
$(document).on('page:load', menuAdjust)
您也可以暂时disable Turbolinks确定这是问题的原因。