Rails 4 jquery链接与重载时绑定触发

时间:2015-07-23 17:16:35

标签: jquery ruby-on-rails-4 turbolinks

嗨我在Rails 4中有一个奇怪的行为。我对下一个代码有一个部分:

#add_tabs
  = link_to "Add Tab", "#", id:"test"
  #data_retrieved


:javascript
  $("#test").bind("click",function(){
    alert("I'm working");
  });

和everythime我重新加载页面警报被触发。我完全迷失了。

提前致谢。

更新:

感谢Pavan我意识到发生了什么。 Rails 4.1.8使用turbolinks来管理您网站上的所有链接,以便进行预加载。因此,每次您的网站重新加载您的链接都会被解雇。要防止出现这种情况,您必须(如Pavan所指)将链接设置为remote:true,以便让它们由ajax / javascript事件管理。像这样:

link_to "Add Tab", "#", id:"test", remote: true

此外,更重要的是,您必须使用

gem 'jquery-turbolinks'

并确保您的application.js看起来像这样:

/= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//
// ... your other scripts here ...
//
//= require turbolinks

最后但同样重要的是,请确保以这种方式设置绑定回调:

$("#test").bind("click",function(){get_products()})

因为如果你这样设置:

$("#test").bind("click",get_products())

奇怪的事情会发生;)

0 个答案:

没有答案