为什么Rails UJS是ajax:成功绑定被调用两次?
我有一个简单的形式:
= form_for(posts_path,:id => "new_post",:remote => true) do = text_field_tag "post[input]" = submit_tag "Post!" 我绑定了一个回调ajax:success事件: $("form#new_post").bind("ajax:success",function(xhr,data,status){ alert("Post Created!"); }); 当我点击帖子!按钮,Post Created出现两次.为什么? 我正在使用Rails 3.1,默认情况下使用的是jquery-ujs. 解决方法
这是因为当/ public / assets中存在预编译资产时,您的页面在开发模式下加载jquery_ujs代码两次.
在开发模式下,javascript requries加载了单独的标记:jquery,jquery_ujs.js,myscripts.js,最后是applications.js.当预编译的application.js存在并且从/ public / assets中使用时会发生问题 – 它包含所有以前文件的编译.这由资产触发:预编译rake任务. 解决方案是在开发时删除/ public / assets目录,然后使用application.js(来自/ app / assets / javascript),它不包含以前的文件. 更新 将development.serve_static_assets = false添加到development.rb也为我解决了问题而不必担心/ public / assets. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |