Coffeescript JQuery点击仅在页面刷新时工作

前端之家收集整理的这篇文章主要介绍了Coffeescript JQuery点击仅在页面刷新时工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个使用coffeescript的rails应用程序.当我刷新页面或使用URL直接转到页面时,以下代码可以正常工作.当我点击链接进入此页面并尝试它时,它根本不起作用.为什么会这样?

jQuery ->
  console.log "Ready."
  $('form').on 'click','.add_fields',(event) ->
    console.log "Click."
    time = new Date().getTime()
    regexp = new RegExp($(this).data('id'),'g')
    $(this).before($(this).data('fields').replace(regexp,time))
    event.preventDefault()

重新加载后,我会在适当的时候准备好并点击它,它可以工作.从另一页面点击后,我什么都没得到.我也从chrome获得了这个弃用警告,我不确定如何解决,因为它来自JQuery本身:

event.returnValue is deprecated. Please use the standard event.preventDefault() instead.
jquery.js?body=1:5375

只有当上面的代码不起作用时才会显示错误.镀铬会阻挡它吗?我正在使用jquery-rails(3.0.4)

最佳答案
事实证明,导致问题的是turbolinks.感谢davidburber指出这一点.这是我做的修复它(从Rails 4: how to use $(document).ready() with turbo-links)

ready = ->
  $('form').on 'click','.remove_fields',(event) ->
    $(this).prev('input[type=hidden]').val('1')
    $(this).closest('fieldset').hide()
    event.preventDefault()


$(document).ready(ready)
$(document).on('page:load',ready)

猜你在找的jQuery相关文章