如何简化示例中的jQuery代码?

时间:2016-01-28 15:09:26

标签: javascript jquery

AJAX https://github.com/defunkt/jquery-pjax的loada页面有一个插件 问题是它只更新页面上的一个容器,需要一些容器。 以下代码有效,但它已弃用(第二个容器更新时有延迟)。如何优化同时加载的容器?

$(document).on("click", "a.item-link", (function (evt) {
      evt.preventDefault();
      var thisUrl = $(this).attr('href');
      $.pjax({
          url: thisUrl,
          container: '.pjax',
          fragment: '.pjax'
      });
      setTimeout(function() {
        $.pjax({
          url: thisUrl,
          container: '.box-mnu',
          fragment: '.box-mnu'
        });
      }, 1000);
  }));

3 个答案:

答案 0 :(得分:1)

尝试使用.load(),删除setTimeout来电

  $(document).on("click", "a.item-link", (function (evt) {
      evt.preventDefault();
      var thisUrl = $(this).attr('href');
      $(".pjax").load(thisUrl);
      $(".box-mnu").load(thisUrl);
  });

答案 1 :(得分:1)

删除代码中的setTimeout电话。

$(document).on("click", "a.item-link", (function (evt) {
      evt.preventDefault();
      var thisUrl = $(this).attr('href');
      $.pjax({
         url: thisUrl,
         container: '.pjax',
         fragment: '.pjax'
      });
      $.pjax({
         url: thisUrl,
         container: '.box-mnu',
         fragment: '.box-mnu'
      });
}));

答案 2 :(得分:0)

$(document).pjax('.pjax-link', '.first-container', {fragment: '.first-container'});
$('.pjax').on('pjax:success', function () {
    $.pjax({
        url: window.location.href,
        container: '.second-container',
        fragment: '.second-container'
    });
});