我正在尝试通过Ajax设置它,这就是我到目前为止所得到的。我已经试图弄清楚这个问题有一段时间了,但似乎无法找到合适的方法。
function getFunction()
{
$(".cals").click(function()
{
$.get("http://events.cs50.net/api/1.0/calendars?campus=GSD&output=json", function(data, status)
{
var response = "<h3>GSD Calenders</h3>\n";
response = response + '<ul data-role="listview" data-inset="true" data-filter="true">\n';
var jsonObject = JSON.parse(data);
for (var i = 0; i < jsonObject.length; i++) {
var calendar = jsonObject[i].calname;
response = response
+ '<li><a href="#item">'
+ calendar
+ '</a></li>\n'; }
response = response + '</ul>';
$('#calendars').html(response);
});
});
}发布于 2013-04-15 10:50:10
这是一个有用的小提琴:http://jsfiddle.net/rW9gx/1/
我已经将js更改为:
$(function() {
$("#cals").click(function()
{
$.getJSON("http://events.cs50.net/api/1.0/calendars?campus=GSD&output=json", function(data, status)
{
var response = "<h3>GSD Calenders</h3>\n";
response = response + '<ul data-role="listview" data-inset="true" data-filter="true">\n';
for (var i = 0; i < data.length; i++) {
var calendar = data[i].calname;
response = response
+ '<li><a href="#item">'
+ calendar
+ '</a></li>\n';
}
response = response + '</ul>';
$('#calendars').html(response);
});
});
});以下是一些事情:
您已经将单击事件处理程序包装在一个函数(getFunction)中,这意味着只有在触发该函数之后才会应用该处理程序。我不知道这是否是有意的,也不知道您的代码样本是否完整,但我已经删除了它,并将js包装在一个文档就绪函数中,以便在加载DOM时应用它。
我将json $.get更改为$.getJSON,这只是在$.ajax或$.get调用中编写dataType: "json"的快捷方式。这意味着您不必将返回数据解析为Json,因为这是您期望返回的数据。
除此之外,它工作得很好。
https://stackoverflow.com/questions/16006043
复制相似问题