Rails 中带有 Turbolinks 的 Javascript 条件?

标签 javascript ruby-on-rails coffeescript ruby-on-rails-4

我正在尝试为涡轮链接页面设置一个条件 - 页面的不同部分会根据它们所在的网站部分而淡入淡出。

我在特定链接中使用一个类,让我知道何时需要替代行为 - 因此带有“commentlink”类的链接将触发“.commentBit”div 的淡入淡出,但网站的其余部分将触发“#mainPage”淡入淡出。

我似乎无法让以下条件发挥作用,你知道我做错了什么吗?

hasBeenClicked = false
$(document).on( 'click', '.commentlink', ->
  hasBeenClicked = true
  )

$(document).on 'page:fetch', ->
  if hasBeenClicked
    $('.commentBit').fadeOut 'fast'
  else
    $('#mainPage').fadeOut 'fast'

最佳答案

如果点击链接时错误的内容淡出,可能是因为您在每次淡出后没有重置 hasBeenClicked

如果您单击 .commentLink.commentBit 将正确淡出,但由于 hasBeenClicked 仍然为 true,因此任何其他链接单击将提示相同的行为。

淡出 .commentBit 后将 hasBeenClicked 重置为 false。

关于Rails 中带有 Turbolinks 的 Javascript 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17310101/

相关文章:

ruby-on-rails - 使用 ActiveSupport::Concern 重载类方法

javascript - 在 AngularJS 中滚动总是在顶部

javascript - 如何在 JavaScript 中为桌面和移动设备创建不同的 onclick 行为?

javascript - 将 CSS 样式应用于单个元素

ruby-on-rails - 在 Heroku 控制台中访问助手

javascript - Chaplin/Backbone 问题 - 将项目添加到集合时未触发 "Add"事件

javascript - 如果您想完全忽略它,Parsley.js 中是否有任何配置选项允许您不将 parsley-success 字段添加到输入中?

ruby-on-rails - 乘客不断抛出连接错误

coffeescript - ReactJS:如何访问子组件的引用?

angularjs - 将 Karma-runner 与 AngularJS、Jasmine、CoffeeScript 一起使用