嗨我在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())
奇怪的事情会发生;)