好的,所以我已经看到了这个问题 https://stackoverflow.com/questions/4475449/link-to-confirm-displays-popup-twice关于这个问题是由 jQuery 或 Prototype 的多个链接引起的,但我可以确认我只链接到 jQueryonce在整个页面上。我的问题是这样的:当我有一个link_to
确认删除后,弹出窗口会显示两次。这是我的模板中的适用代码(用 Slim 编写):
link_to('Destroy', depot_path(@depot.id), :confirm => "Really?", :method => :delete)
我在跑导轨3.1.0打开 Asset Pipeline 后,gem 'jquery-rails'
in my Gemfile
,以下是我的application.js
文件(由 Sprockets 为资产管道编译)。
//= require jquery
//= require jquery_ujs
//= require 'underscore'
//= require 'backbone'
I have underscore.js
and backbone.js
in my /vendor/assets/javascripts/
目录和链轮似乎发现那些还可以。我也搜索过application.js
sprockets 提供的文件,jQuery 只在那里一次,jQuery UJS 只在那里一次。这就是我的页面渲染时我的头的样子(我省略了csrf-token
显示值,FWIW)。
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type">
<title>Administration</title>
<link href="/assets/screen.css" media="screen" rel="stylesheet" type="text/css" />
<script src="/assets/application.js" type="text/javascript"></script>
<meta content="authenticity_token" name="csrf-param" />
<meta content="--token--omitted--" name="csrf-token" />
<script src="/assets/common/subdata.js" type="text/javascript"></script>
<link href="/assets/show.css" media="screen" rel="stylesheet" type="text/css" />
</head>
subdata.js
其中有一些特定于 Backbone 的代码;没有什么会选择再次包含 jQuery。那么到底是怎么回事呢?我的项目中没有任何额外的 jQuery 文件;这一切都是通过jquery-rails
宝石。是什么原因导致我的:confirm
发射两次的方法?
EDIT:我之前在 Rails 3.1 的 RC5 上看到过这个,但现在我也在 Rails 3.1 上看到了它。