首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PJAX多个容器

PJAX多个容器
EN

Stack Overflow用户
提问于 2015-12-08 14:42:44
回答 3查看 1.7K关注 0票数 2

如何创建一个可以有多个容器的Pjax?我在这个链接上尝试了这个Pjax:

https://github.com/defunkt/jquery-pjax/blob/master/README.md

这是我的代码:

代码语言:javascript
复制
$(document).pjax('a', '#pjax-container, #pjax-navbar');

但它不起作用。

然后我尝试了下面的代码:

代码语言:javascript
复制
$(document).pjax('a', '#pjax-container');
$(document).pjax('a', '#pjax-navbar');

而且它也不起作用。它只加载最后一个。

我该如何让它工作呢?

这是我的HTML

代码语言:javascript
复制
<div class="wrap">
    <nav id="w0" class="navbar-inverse navbar-fixed-top navbar" role="navigation" id="pjax-navbar">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#w0-collapse"><span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span></button><a class="navbar-brand" href="/josh/cms_template/backend/web/">My Company</a></div>
            <div id="w0-collapse" class="collapse navbar-collapse">
                <ul id="w1" class="navbar-nav navbar-right nav">
                    <li class="active"><a href="/josh/cms_template/backend/web/site/index">Home</a></li>
                    <li><a href="/josh/cms_template/backend/web/site/logout" data-method="post">Logout</a></li>
                </ul>
            </div>
        </div>
    </nav>
    <div class="container" id="pjax-container">
        <div class="site-index">
            this is my content
        </div>
    </div>
</div>

我想要的是当我转到另一个页面时,只有pjax-container会改变。

我已经做好了。但是导航栏并没有改变。

EN

回答 3

Stack Overflow用户

发布于 2015-12-08 15:46:57

Pjax没有多个容器。

要将相同的响应复制到其他pjax容器,您可以使用pjax complete事件处理程序,如下所示。

从页面中删除/禁用现有的pjax代码:

代码语言:javascript
复制
//Remove Code

//$(document).pjax('a', '#pjax-container');
//$(document).pjax('a', '#pjax-navbar')
//$(document).pjax('a', '#pjax-container, #pjax-navbar');


// Add this Code

$(document).on('pjax:complete', function(event) {
   //This code will copy #pjax-container container's response 
   // to #pjax-navbar when event is completed.

   $('#pjax-navbar').html(  $('#pjax-container').html() );

});
票数 1
EN

Stack Overflow用户

发布于 2015-12-08 15:52:25

你可以添加两个href相同但id不同的链接。并将pjax附加到其中的每一个:

代码语言:javascript
复制
$(document).pjax('a#pjax-link-container', '#pjax-container');
$(document).pjax('a#pjax-link-navbar', '#pjax-navbar');
票数 0
EN

Stack Overflow用户

发布于 2020-10-08 17:40:19

代码语言:javascript
复制
$(document).pjax('a', '#pjax-container');
$(document).on('pjax:clicked', function(options) { 
                $.pjax.reload('#pjax-container', {               
                 fragment: '#pjax-container',
                 timeout: 5000,
                 scrollTo: false
              })
            });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34149599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档