Я использую jQuery, чтобы получить JSON, а затем подключить его к некоторым элементам и отобразить на моей странице.
Отлично работает на всех страницах , за исключением 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);
})();
Что происходит?