双Javascript对话框提示

时间:2013-05-01 18:55:49

标签: javascript ruby-on-rails ruby

我有以下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 .

3 个答案:

答案 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.