【发布时间】:2015-05-28 03:59:22
【问题描述】:
序言:这不是另一个 turbolinks 问题 :) 我实际上已经从我的 Gemfile 和 application.js 中删除了 turbolinks。
所以我正在运行一个 Rails 4.2.0 应用程序。我正在使用基础导轨 gem 和 jquery-rails。 按照建议,我在 application.js
中初始化了基础细节$(function(){
$(document).foundation();
});
在我的控制器javascript(实际上是coffeescript)中,我有以下绑定到基础显示事件(在我的模式上具有自定义行为)
$( () ->
bindReveal()
)
bindReveal = () ->
$(document).on('open.fndtn.reveal', '#modal-thanks', (event) ->
if 'fndtn.reveal' == event.namespace
modal = $(this)
modalTimeout = window.setTimeout( () ->
modal.foundation('reveal', 'close')
, 1500)
)
$(document).on('closed.fndtn.reveal', '#modal-thanks', (event) ->
if 'fndtn.reveal' == event.namespace
window.clearTimeout(modalTimeout)
modalTimeout = 0
goToNextQuestion()
)
如果我这样做,实际上它不起作用。模态确实出现了,但事件未绑定。
我实际上是通过 sprockets 指令追踪到的一个事实
//= require_tree .
在 application.js 中,控制器 js 代码实际上在 application.js 主体代码之前执行,其中包含基础 init 调用。所以当我尝试绑定我的基础事件时,基础实际上并没有启动。
我有一个解决方案,见下文,但它并不是 100% 让我满意。
所以我的问题是:我错过了什么吗?使用基础导轨的最佳做法是什么?
谢谢
【问题讨论】:
标签: jquery ruby-on-rails-4 zurb-foundation