javascript - 为什么 Chrome 会显示这些 (rails-jquery) 警报两次,而 Firefox 却不会?

标签 javascript jquery ruby-on-rails ruby ruby-on-rails-3

如何阻止这些rails-js-jquery 弹出窗口在 Firefox 中重复出现?
它们只在 Chrome 中显示一次……尽管在我的 Ubuntu 机器上的“Chromium”中不显示。 我检查了 Chrome,没有安装任何扩展程序。

JavaScript 运行了两次,所以我看到 4 条消息。
其他部分工作正常(数据库更新,用户界面范围更新)

haml 是 app/views/link/index.haml

= link_to 'verify', verify_link_path(:id => link.id, :table_row => index),  
  class: 'verify', remote: true

JavaScript 是 app/views/links/verify_link.js.erb

$("span#verify_link_<%=params['table_row']%>").text('verified');
alert("message 1");
alert("message 2");

Controller 是app/controllers/links_controller.rb

def verify_link
  @link = Link.find(params[:id])
  @link.verified_date = Time.now
  @link.save!
  respond_to do |format|
   format.js
  end 
end

js是verify_link_js.erb:

$("span#verify_link_<%=params['table_row']%>").text('verified');
alert("message 1");
alert("message 2");

每次验证点击时,网络选项卡仅显示一次 js 文件。 Chrome 中的弹出窗口是:

enter image description here enter image description here enter image description here enter image description here

而在 Firefox 中我只是得到

enter image description here enter image description here

最佳答案

为什么它们显示两次(尽管不是为什么在 Firefox 中!)的答案是我的 javascript Assets 文件 (app/assets/javascript/application.js )有以下内容:

//= require_self
//= require jquery-1.7.2.min
//= require jquery-ui-1.8.22.custom.min
//= require default_on_first_input_field
//= require row_shading
//= require sortable_hook
//= require_tree .

这基本上需要文件两次 - 单独,然后通过 require_tree

我的首选解决方案是删除个人需求。可以要求这个项目的所有内容......事实上 require_tree 就是这样做的。所以我把它改成了

//= require_self
//= require_tree .

有趣的是,这个问题到目前为止还没有在现有的 javascript 函数中出现。他们大概“可以”跑两次,这是有道理的,例如“行阴影两次”就可以了。所以基本上,这是我升级的剩余“工件”,以使用从 Rails 2.3.8(之前)开始的应用程序中的 Assets 管道。

关于javascript - 为什么 Chrome 会显示这些 (rails-jquery) 警报两次,而 Firefox 却不会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23981504/

相关文章:

javascript - 检查游戏网格中的垂直匹配时出现类型错误

javascript - 像 StackOverflow 一样使用 AJAX 从 URL 上传图片?

javascript - 在预订小部件上向 "Check In Date"添加 2 天

javascript - 如何压缩相似的重复jquery函数

jquery - 将事件处理程序 Hook 到 jQuery 自动完成组合框

Javascript insideHtml 测验结果

mysql - 在 rails 4 中包含、加入和选择

ruby-on-rails - Ruby on Rails - 添加新的 Controller 方法

ruby-on-rails - 部署期间预编译 Assets 失败

javascript - 与 Karma 集成测试