【发布时间】:2011-04-19 02:05:13
【问题描述】:
我正在使用 jQuery 获取一些 JSON,然后将其插入一些元素并显示在我的页面上。
它在 all pages 上运行良好,但 one 除外,其中响应似乎是页面本身。
我已将 alert()s 放在回调中(success 和 complete),但它们似乎从未被触发(尽管 Firebug 显示请求返回 200 OK,应该触发success 处理程序)。
我不知道该怎么办,我以前从未遇到过。
这是我正在使用的 jQuery 代码:
var specials = (function() {
var specials = false,
specialsAnchor;
var init = function() {
specialsAnchor = $('#menu-specials a');
specialsAnchor.click(function(event) {
event.preventDefault();
if (specials != false && specials.is(':visible')) {
hide();
} else {
show();
}
});
};
var load = function(callback) {
specialsAnchor.addClass('loading');
specials = $('<div />', { 'id': 'specials' }).hide().appendTo('#header');
var specialsUl = $('<ul />').appendTo(specials);
$.ajax(specialsAnchor.attr('href'), {
dataType: 'json',
success: function(data) {
$.each(data, function(i, special) {
specialsUl.append('<li><h4>' + special.heading + '</h4><p>' + special.content + '</p></li>');
});
specialsAnchor.removeClass('loading');
callback.call();
}
});
}
var show = function() {
if (specials == false) {
load(show);
return;
}
specials.slideDown(500);
}
var hide = function() {
specials.slideUp(500);
}
$(init);
})();
发生了什么事?
【问题讨论】:
-
data.basePath来自哪里...我没有看到data在任何地方定义。没关系..它是一个全球性的...... -
@prodigitalson 说了什么,顺便说一句,我认为这是某种 URL/层次结构问题。
-
@prodigitalson 在
head元素中定义。 -
@prodigitalson 我更改了它,但请记住这是所有页面上的相同 URL。
标签: javascript jquery ajax json