微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么不只在一页上调用我的回调?

如何解决为什么不只在一页上调用我的回调?

| 我正在使用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 举报,一经查实,本站将立刻删除。