Как я могу запретить повторять эти всплывающие окна rails-js-jquery в Firefox?
Они показывают только один раз в Chrome... хотя и не в "Chromium" на моей машине Ubuntu. Я проверил Chrome, и у меня нет установленных расширений.
Javascript запускается дважды, поэтому я вижу 4 сообщения.
Остальные части работают нормально (db обновляется, обновляется ui span)
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");
Контроллер - это 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:
Если в Firefox я просто получаю
Ответ на вопрос, почему они показывали дважды (хотя не из-за чего не в Firefox!), Заключается в том, что у моего файла ресурсов javascript (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. Предположительно, они были "нормально", чтобы работать дважды, что имеет смысл, например, "штрихование строк дважды" в порядке. Таким образом, в основном это был оставшийся "artififact" моего обновления, чтобы использовать конвейер активов из приложения, которое началось с rails 2.3.8 (перед ним).