Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用事件(作为函数)发布v4_Javascript_Fullcalendar_Fullcalendar 4 - Fatal编程技术网

Javascript 使用事件(作为函数)发布v4

Javascript 使用事件(作为函数)发布v4,javascript,fullcalendar,fullcalendar-4,Javascript,Fullcalendar,Fullcalendar 4,尝试使用从geojson导入数据,但无法获取任何要显示的内容。我的具体案例缺少v4示例,这使得我很难做到这一点,同时也缺少错误。我的代码如下。根据myevents函数中的my debug.log(eventlist)正确生成“eventlist”。由于某些原因,我的事件不会显示 任何帮助都会很好 <html lang='en'> <head> <meta charset='utf-8' /> <script src="https:/

尝试使用从geojson导入数据,但无法获取任何要显示的内容。我的具体案例缺少v4示例,这使得我很难做到这一点,同时也缺少错误。我的代码如下。根据myevents函数中的my debug.log(eventlist)正确生成“eventlist”。由于某些原因,我的事件不会显示

任何帮助都会很好

<html lang='en'>

  <head>
    <meta charset='utf-8' />
    <script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
    <link href='https://unpkg.com/@fullcalendar/core@4.2.0/main.min.css' rel='stylesheet' />
    <link href='https://unpkg.com/@fullcalendar/daygrid@4.2.0/main.min.css' rel='stylesheet' />
    <script src='https://unpkg.com/@fullcalendar/core@4.2.0/main.min.js'></script>
    <script src='https://unpkg.com/@fullcalendar/daygrid@4.2.0/main.min.js'></script>
  </head>
  <body><div id='calendar' class="mycal"></div></body>




    <script>

    function myevents()
    {
        var eventlist = [];
        var script = document.createElement('script');
        script.src = 'https://uploads-ssl.webflow.com/5b5a1fce48210813dc66ccb6/5d2f8540e5892f506213cb11_Output.txt';
        document.getElementsByTagName('head')[0].appendChild(script);
        window.eqfeed_callback = function(results)
        {
            for (var i = 0; i < results.features.length; i++)
            {
                var obj = {};
                obj['title'] = results.features[i].properties.eventname;
                obj['start'] = results.features[i].properties.datestart;
                obj['end'] = results.features[i].properties.dateend;
                eventlist.push(obj);
            }
        }
        console.log(eventlist);
        return eventlist;
    }


      document.addEventListener('DOMContentLoaded', function() {
        var calendarEl = document.getElementById('calendar');

        var calendar = new FullCalendar.Calendar(calendarEl, {
            plugins: [ 'interaction', 'dayGrid'],
            defaultView: 'dayGridMonth',
            contentHeight: 'auto',
            header: { left: 'prev,next', center: '', right: 'title' },
            events: function(info, successCallback, failureCallback) {   

                successCallback(myevents());

            }
        });

        calendar.render();

      });



    </script>

</html>

函数myevents()
{
var eventlist=[];
var script=document.createElement('script');
script.src=https://uploads-ssl.webflow.com/5b5a1fce48210813dc66ccb6/5d2f8540e5892f506213cb11_Output.txt';
document.getElementsByTagName('head')[0].appendChild(脚本);
window.eqfeed\u callback=函数(结果)
{
对于(var i=0;i
如果您记录每个单独的
obj的创建,并注意日志在控制台中的显示顺序(特别是与记录整个事件列表时的顺序相比),您可能会开始看到问题-通过此演示观察:。还请记住,像Chrome这样的浏览器可以动态地回顾性地填充对象的日志(换句话说,它可以创建日志条目,然后在代码中更新对象时向其添加数据),这在您尝试调试此类问题时并不总是有帮助的

我的意思是,您没有考虑到脚本文件将异步加载的事实

幸运的是,由于fullCalendar已经为您提供了
successCallback
,在您准备返回事件时可以调用它,因此这非常适合于处理异步场景。您只需在异步eq_反馈回调中调用successCallback。这将确保在实际填充事件列表之前不会将其发送到fullCalendar

function myevents(info, successCallback, failureCallback) {
  var script = document.createElement("script");
  script.src =
    "https://uploads-ssl.webflow.com/5b5a1fce48210813dc66ccb6/5d2f8540e5892f506213cb11_Output.txt";
  document.getElementsByTagName("head")[0].appendChild(script);

  window.eqfeed_callback = function(results) {
    var eventlist = [];
    for (var i = 0; i < results.features.length; i++) {
      var obj = {};
      obj["title"] = results.features[i].properties.eventname;
      obj["start"] = results.features[i].properties.datestart;
      obj["end"] = results.features[i].properties.dateend;
      eventlist.push(obj);
    }
    successCallback(eventlist);
  };
}

document.addEventListener("DOMContentLoaded", function() {
  var calendarEl = document.getElementById("calendar");

  var calendar = new FullCalendar.Calendar(calendarEl, {
    plugins: ["interaction", "dayGrid"],
    defaultView: "dayGridMonth",
    contentHeight: "auto",
    header: { left: "prev,next", center: "", right: "title" },
    events: myevents
  });

  calendar.render();
});
函数myevents(信息、成功回调、失败回调){
var script=document.createElement(“脚本”);
script.src=
"https://uploads-ssl.webflow.com/5b5a1fce48210813dc66ccb6/5d2f8540e5892f506213cb11_Output.txt";
document.getElementsByTagName(“head”)[0].appendChild(脚本);
window.eqfeed\u callback=函数(结果){
var eventlist=[];
对于(var i=0;i
演示: