2010-12-22 39 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

相关问题