2010-12-22 41 views
1

我已經將fullcalender控件嵌入到我的asp.net mvc應用程序中。它在本地運行良好。但是當我將它上傳到我的域名服務器(第三方)時,它向我展示了Uncaught TypeError:Object#<an Object> has no method'fullCalendar'

此錯誤:Uncaught TypeError:Object#在crome控制檯(調試器)中沒有方法'fullCalendar'。而不是渲染控件。

** EDITED: My HTML code is this ** 
「%>

指數 <%VAR串行=新System.Web.Script.Serialization.JavaScriptSerializer();%> <風格類型= '文本/ CSS'>

body { 
    margin-top: 40px; 
    text-align: center; 
    font-size: 14px; 
    font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif; 
    } 

#calendar { 
    width: 900px; 
    margin: 0 auto; 
    } 

<腳本類型= 「文本/ JavaScript的」>

$(document).ready(function() { 
     var date = new Date(); 
     var d = date.getDate(); 
     var m = date.getMonth(); 
     var y = date.getFullYear(); 
     var officerid = document.getElementById('officerid').value; 
     url = "/TasksToOfficer/Calender/" + officerid; 

     var currenteventIden = <%= serializer.Serialize(ViewData["iden"]) %> 

     var calendar = $('#calendar').fullCalendar({ 
      header: { 
           left: 'prev,next today', 
           center: 'title', 
           right: 'month,agendaWeek,agendaDay', 
           border: 0 
          }, 

       eventClick: function(event, element) { 

                 var title = prompt('Event Title:', event.title, { buttons: { Ok: true, Cancel: false} }); 
                 var iden = event.id; 
                 if (title) { 
                  var st = event.start; 
                  var ed = event.end; 
                  var aldy = event.allDay; 
                  var dt = event.date; 

                  event.title = title;       
                  calendar.fullCalendar('updateEvent',event); 


                  var date = new Date(st); 
                  var NextMonth = date.getMonth() + 1; 
                  var dateString = (date.getDate()) + '/' + NextMonth + '/' + date.getFullYear(); 
                  var QueryStringForEdit=null; 

                  QueryStringForEdit="officerid=" + officerid + "&description=" + title + "&date=" + dateString + "&IsForUpdate=true&iden=" + iden; 


                  if (officerid) { 
                   $.ajax(
                          { 

                           type: "POST", 
                           url: "/TasksToOfficer/Create", 
                           data: QueryStringForEdit, 
                           success: function(result) { 

                            if (result.success) $("#feedback input").attr("value", ""); // clear all the input fields on success 

                           }, 
                           error: function(req, status, error) { 

                           } 
                          }); 


                  } 
                 } 

                }, 
      selectable: true, 
      selectHelper: true, 
      select: function(start, end, allDay) { 
                var title = prompt('Event Title:', { buttons: { Ok: true, Cancel: false } 

                } 
               ); 
                if (title) { 
                 calendar.fullCalendar('renderEvent', 
                                 { 
                                  title: title, 
                                  start: start, 
                                  end: end, 
                                  allDay: allDay 
                                 }, 
                            false); // This is false , because do not show same event on same date after render from server side. 
                 var date = new Date(start); 

                 var NextMonth = date.getMonth() + 1; // Reason: it is bacause of month array it starts from 0 

                 var dateString = (date.getDate()) + '/' + NextMonth + '/' + date.getFullYear(); 

     if (officerid) { 
       $.ajax({                     type: "POST", 
                              url: "/TasksToOfficer/Create", 
                              data: "officerid=" + officerid + "&description=" + title + "&date=" + dateString + "&IsForUpdate=false", 
                              success: function(result) { 

                               if (result.success) $("#feedback input").attr("value", ""); 
                               //$("#feedback_status").slideDown(250).text(result.message); 
                              }, 
                              error: function(req, status, error) { 

                              } 
                             }); 
       } 
        } 
        calendar.fullCalendar('unselect'); 
      }, 
      editable: true,    
      events: url 
     }); 
    }); 

    //--------------------------------------------------------------------------// 


</script > 


<h2> 
    Index</h2> 
<div id="calendar"> 
</div> 
<input id="officerid" type="hidden" value="<%=ViewData["officerid"].ToString()%>" /> 

alt text

alt text

回答

3

你確定你已經上傳的(正確的)JavaScript文件到外部服務器?不要相信Visual Studio的發佈功能!

資源的URL是否正確?網址可能指向本地資源。

[編輯]

這裏只有我能想到的事情,所以我會重複自己。 我認爲腳本的路徑是錯誤的。

所以請再次檢查。這些文件是否被引用?路徑是否正確。 請注意與您正在瀏覽的頁面相關的路徑! 使它們相對於域:即它們以'/'開頭並檢查服務器上是否存在所有目錄和文件。 確保在'fullcalendar.min.js'之前引用了「jquery-1.4.4.min.js」或任何其他版本的jquery。

的fullcalendar zip文件包含演示的...檢查這些...

我的想法並非如此。

<link rel='stylesheet' type='text/css' href='/content/css/fullcalendar.css' /> 
<script type='text/javascript' src='/content/css/jquery-1.4.4.min.js'></script> 
<script type='text/javascript' src='/content/css/fullcalendar.min.js'></script> 
+0

好吧,讓我再次嘗試替換我的腳本目錄在服務器上。 – 2010-12-22 13:09:54

0

試試這個:每次要fullcalendar的內部功能或對象內像你eventClick:由$(this).fullCalendar更換calendar.fullcalendar

相關問題