我有以下Ruby代码:
<%= link_to "Install", install_game_path(game), :remote => true, :confirm => "Download local content for #{game.name}?", :title => "Install #{game.name}", :id => "game_#{game.id}_install_link" %>
这会产生一行代码如下:
<a href="/games/install/3" data-confirm="Download local content for GAME 1?" data-remote="true" id="game_1_install_link" title="Install GAME 1">Install</a>
但是,在我的开发环境中,它正在生成两个Javascript警报提示。我在Firefox中没有任何Javascript / JQuery错误。为什么此对话框会出现两次(无论是否单击“确定”或“取消”?
修改
<%= javascript_include_tag "application" %>
<%= javascript_include_tag 'http://github.com/cowboy/jquery-dotimeout/raw/v1.0/jquery.ba-dotimeout.min.js' %>
生成此代码:
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/games.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.ba-dotimeout.min.js?body=1" type="text/javascript"></script>
<script src="/assets/pages.js?body=1" type="text/javascript"></script>
<script src="/assets/servers.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
<script src="http://github.com/cowboy/jquery-dotimeout/raw/v1.0/jquery.ba-dotimeout.min.js" type="text/javascript"></script>
application.js文件只包含默认内容:
//= require jquery
//= require jquery_ujs
//= require_tree .
答案 0 :(得分:1)
看起来你不小心包含了两份rails.js。你能检查一下渲染页面的HEAD标签吗?此外,如果您使用Rails 3.1或更高版本而不是检查jquery.js和jquery_ujs而不是rails.js。你在某处调用js文件两次。
答案 1 :(得分:0)
似乎已经分配了两次“data-confirm”属性的Rails处理程序。
你有没有机会添加两次javascript标签(javascript_include_tag)?
答案 2 :(得分:0)
嗨@andy是因为您在开发中预先编译了资产,因此请检查您的公共资产
它包含“application.js”的文件夹,它已经预编译,rails开发将
自动选择已编译和单独的js文件。
<强> Please remove public assets file in local if will fix your problem.
强>