如何解决为什么不只在一页上调用我的回调?
| 我正在使用jQuery来获取一些JSON,然后将其插入某些元素并显示在我的页面上。 它在所有页面上都能正常工作,但其中一个页面似乎是页面本身。 我已经在回调(success
和complete
)中放置了“ 0”,它们似乎从未被触发(尽管Firebug显示了返回“ 3”的请求,该请求应触发“ 1”处理程序)。
我不知道该怎么办,我之前从未遇到过。
这是我正在使用的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);
})();
到底是怎么回事?解决方法
我注意到您在此页面上包括了jquery.validate,但其他页面没有。 jQuery使用jQuery> 1.5进行验证会导致AJAX调用出现一些问题。
我意识到链接的问题/答案并不完全是您所看到的,但是我已经看到AJAX调用以及validate和jQuery的这种组合产生的各种奇怪问题,因此我认为值得一提。
希望能有所帮助。,这可能不是一个完整的答案,但可能是朝正确方向迈出的一步。使用Charles Proxy时,当我单击特价商品时,它似乎出现在您的其他页面上,它向http://www.toberua.com/~new/specials发出了请求,但是在联系我们页面上,ajax请求却转到了http:/ /www.toberua.com/~new/contact-us(当然不是json)
另一个有趣的注释:
其他页面上的XMLHttpRequest正确设置了Accept标头(即
Accept application/json,text/javascript,*/*; q=0.01
,而在contact-us页面上将其设置为Accept */*
)。我敢打赌,有一个不同的代码分支正在被调用...版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。