我几个月来一直在研究Rails应用程序。今天,当我在localhost上运行应用程序时,似乎jquery在每个页面上执行两次。
我在运行iMac。
有些症状是:
这真让我感到困惑!!!
感谢您的帮助!
UPDATE1
当我部署到Rails虚拟服务器时,同一个应用程序运行正常。因此,在我看来它与我的iMac环境有关。
我不确定要显示的代码。因为jquery / javascript代码在上面的所有数字示例中似乎都会触发两次。
以下是日历的视图代码(日历现在在页面上显示两次):
<h2><%= current_user.employee.employee_full_name %> - Labor Month</h2>
<%= content_tag "div", id: "calendar", data: {employeeid: current_user.employee.id} do %>
<% end %>
咖啡脚本:
$(document).ready ->
$('#calendar').fullCalendar
ignoreTimezone: true,
editable: true,
defaultView: 'month',
height: 500,
slotMinutes: 30,
selectable: true,
selectHelper: true,
select: (start, end, allDay) ->
title = $("#title")
description = $("#description")
hours = $("#hours")
workorder = $("#workorder_id")
actcode = $("#actcode_id")
$("#dialog-form").dialog
autoOpen: true
height: 500
width: 400
modal: true
buttons:
"Create Labor": ->
$.create "/events/",
event:
workorder_id: workorder.val(),
actcode_id: actcode.val(),
title: title.val(),
description: description.val(),
hours: hours.val()
starts_at: "" + start,
ends_at: "" + end,
all_day: allDay,
employee_id: $('#calendar').data('employeeid')
$('#calendar').fullCalendar('refetchEvents')
$(this).dialog "close"
Cancel: ->
$(this).dialog "close"
eventSources: [{
url: '/events',
}],
timeFormat: 'h:mm t{ - h:mm t} ',
dragOpacity: "0.5"
eventDrop: (event, dayDelta, minuteDelta, allDay, revertFunc) ->
updateEvent(event);
eventResize: (event, dayDelta, minuteDelta, revertFunc) ->
updateEvent(event);
updateEvent = (the_event) ->
$.update "/events/" + the_event.id,
event:
title: the_event.title,
starts_at: "" + the_event.start,
ends_at: "" + the_event.end,
description: the_event.description
UPDATE3
Some gems I'm using related to javascript:
gem 'twitter-bootstrap-rails'
gem 'jquery-rails'
gem 'fullcalendar-rails'
gem 'jquery-rest-rails'
gem 'gmaps4rails'
gem 'bootstrap-editable-rails'
gem 'jquery-datatables-rails'
gem 'jqtree-rails'
UPDATE4
我是否应该关注Chrome检查元素?
UPDATE5
@ abhi和Ogz向导说要删除公共资产或尝试将其放入development.rb = config.assets.debug = false。当我将该行添加到development.rb时,错误就消失了。
现在我不确定下一步该做什么。我希望能够调试资产。
答案 0 :(得分:0)
你最近有没有转向turbolinks?有一个宝石可以解决这些问题。 (jquery.turbolinks)
如果在使用jQuery Turbolinks后发现某些事件被多次触发,您可能已经将文档事件绑定在$(function())块中。例如,下面这个例子可能很常见,应该避免:
/* BAD: don't bind 'document' events while inside $()! */
$(function() {
$(document).on('click', 'button', function() { ... })
});
https://github.com/kossnocorp/jquery.turbolinks#troubleshooting
但是你应该考虑通过提供更多细节和一些代码来改进你的问题。