gpt4 book ai didi

javascript - 拉入 JSON 数据

转载 作者:行者123 更新时间:2023-11-30 07:44:44 26 4
gpt4 key购买 nike

我正在尝试从 json 数据中获取事件日历。我只想突出显示日期,并在用户单击日期时在日历下方更新一个包含事件详细信息的 div。我的应用以以下形式提供 JSON:

[
{"Date":"02/06/2012","Title":"Eat, Bike, and Swim"},
{"Date":"02/03/2012","Title":"Sleep"},
{"Date":"02/02/2012","Title":"Laugh"}
]

我有一个用于变量定义的 JS fiddle,但我无法让它响应 JSON 请求。

这是我最好的尝试:http://jsfiddle.net/PGmFv/2/

JavaScript 是:

$(document).ready(function() {  var dp, events;  events = [];  return dp = $(".blog_calendar").datepicker({    beforeShowDay: function(date) {      var matching, result;      $.getJSON("https://raw.github.com/gist/1676157/15ce81851e57dfcecb985039e970a749585959de/my.json", function(data) {        return events = data;      });      result = [true, "", null];      matching = $.grep(events, function(event) {        return event.Date.valueOf() === date.valueOf();      });      if (matching.length) {        result = [true, "highlight", null];      }      return result;    },    onSelect: function(dateText) {      var date, event, i, selectedDate;      date = void 0;      selectedDate = new Date(dateText);      i = 0;      event = null;      while (i < events.length && !event) {        date = events[i].Date;        if (selectedDate.valueOf() === date.valueOf()) {          event = events[i];        }        i++;      }      if (event) {        return alert(event.Title);      }    }  });});

我正在尝试在日期选择器函数中加载 json,因为我希望能够在同一页面上拥有多个日历,并且 this.id 包含一个特定的 url 变量,因此我可以调用$.getJSON('/events/' + this.id + '/data.json',function() {}

非常感谢任何想法。我非常依赖:Events in jQuery UI Datepicker with json data sourceDatepicker with events?但无法在正确的时间以正确的方式加载 json。

控制台中没有错误也于事无补。

最佳答案

为了从另一个域获取 JSON 数据,您必须使用带有回调函数的 JSONP。 Github API支持这个 ( example ),并且 jQuery 处理自动使用 dataType: 'jsonp' 进行回调。

这就是我使用 jQuery 从 Github gist 获取 JSON 数据的方式:

$.ajax({
url: 'https://api.github.com/gists/'+gistid,
type: 'GET',
dataType: 'jsonp'
}).success( function(gistdata) {
// This can be less complicated if you know the gist file name
var objects = [];
for (file in gistdata.data.files) {
if (gistdata.data.files.hasOwnProperty(file)) {
var o = JSON.parse(gistdata.data.files[file].content);
if (o) {
objects.push(o);
}
}
}
if (objects.length > 0) {
// DoSomethingWith(objects[0])
}
}).error( function(e) {
// ajax error
});

( jsFiddle )

关于javascript - 拉入 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9005572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com