2013-03-08 93 views
-6

我一直在研究一個Rails應用幾個月。今天,當我在localhost上運行應用程序時,似乎jquery在每個頁面上執行兩次。本地主機運行jquery兩次?

我在iMac上運行。

一些症狀如下:

  1. 數據表告訴我「無法遏制初始化數據表」
  2. 全日曆頁面上顯示2個日曆,而不是1
  3. 引導下拉菜單不工作

這真的讓我感到莫名其妙!

感謝您的幫助!

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 =假。當我將該行添加到development.rb時,錯誤消失了。

現在我不確定接下來應該做什麼。我希望能夠調試資產。

+3

幾乎不可能在沒有看到代碼的情況下說什麼。 – JJJ 2013-03-08 14:30:51

+0

你的腳本是什麼樣的?你導入了什麼js庫? – twDuke 2013-03-08 14:31:05

+0

這看起來不像jquery執行兩次,但更像是jquery數據表插件運行兩次。再次,很難說沒有一些代碼的任何東西... – phtrivier 2013-03-08 14:32:11

回答

0

最近你切換到turbolinks嗎?有一個解決這類問題的寶石。 (jquery.turbolinks)

如果您發現某些事件正在使用jQuery Turbolinks,你可能已經綁定$內部文檔事件(函數())塊燒製後多次。舉例來說,下面這個例子可以是一個普遍的現象,應該避免:

/* BAD: don't bind 'document' events while inside $()! */ 
$(function() { 
$(document).on('click', 'button', function() { ... }) 
}); 

https://github.com/kossnocorp/jquery.turbolinks#troubleshooting

但是,你應該考慮通過提供更多的細節和一些規則來改善你的問題。