【问题标题】:Uncaught TypeError: Object #<an Object> has no method 'fullCalendar'Uncaught TypeError: Object #<an Object> has no method 'fullCalendar'
【发布时间】:2010-12-22 12:39:01
【问题描述】:

我已在我的 asp.net mvc 应用程序中嵌入了 fullcalender 控件。它在本地运行良好。但是当我将它上传到我的域服务器(第三方)时,它会显示给我

此错误:未捕获的类型错误:对象 # 在 crome 控制台(调试器)中没有方法“fullCalendar”。并且不呈现控件。

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

指数

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;
    }

  $(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()%>" />

【问题讨论】:

    标签: javascript asp.net ajax jquery


    【解决方案1】:

    您确定已将(正确的)javascript 文件上传到您的外部服务器?不要相信 Visual Studio 的发布功能!

    资源的 url 是否正确? 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>
    

    【讨论】:

    • 我试过了,mozila 上的 Firebug 在 "even:url" 行向我抛出异常 "$("#calendar").fullCalendar is not a function" 看到我已经对它进行了评论(在代码末尾)
    • 我在哪个 HTMl 我的 aspx 页面中嵌入了 fullcallender 脚本?
    • 是的,请查看问题,我已经编辑并上传了带有脚本的 aspx 页面代码。请指导我。
    • 我再次添加了萤火虫@Steven Kimpe捕获的错误屏幕截图,我已根据您的要求上传。请审查并提出建议。
    【解决方案2】:

    试试这个:每次你在一个内部函数或完整日历的对象中,比如你的eventClick:用$(this).fullCalendar替换calendar.fullcalendar

    【讨论】:

      猜你喜欢
      • 2012-04-20
      • 1970-01-01
      • 2014-03-25
      • 2013-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      相关资源
      最近更新 更多