我有一个使用jQuery和pjax(独立)的应用程序。我们正试图尝试看看我们是否可以使用可能更灵活,更小的npm pjax而不是jquery-pjax。
我的一个函数在加载数据后设置div的html,这个html包含我们想要作为pjax链接的链接,例如$('#link-container').html('<a href="/account_detail.html?='+account.id+'" data-pjax >')
。但是,单击此链接会导致整页重新加载而不是pjax请求。
有没有办法重新实现pjax?当我在pjax:success调用(来自项目页面的DOMReady - https://www.npmjs.org/package/pjax)中尝试new PJAX({elements:[a[data-pjax]]})
时,它使用pjax ...但随后加载资源两次。
也许最好的解决方案是使用jquery-pjax($(document).pjax(一个[data-pjax]等)但是我想知道是否有人之前遇到过这种类型的问题。也许这种情况很少见包括jQuery和非jQuery pjax,但似乎这可能发生在任何异步数据查询和DOM修改,我只想重新PJAX。
答案 0 :(得分:0)
我使用的是jquery-pjax,当您使用它或配置错误时 - 它也会刷新页面,因此您遇到了我遇到过的问题之一。
无论如何,我不确定它是否会对您的问题有所帮助,但我建议大家将Firefox与Firebug一起使用,并在&#34; Console&#34;选项卡点击&#34;坚持&#34;你经常会发现一些可能有用的错误,因为某处的错误可能会导致页面刷新 - 有时你会错过它,因为控制台也会被刷新。
我学到的是你在写作时需要确保:
<a href="/account_detail.html?=2" data-pjax>bla</a>
你需要一个容器--PJAX将内容放入,例如:
<div id="pjax-container"></div>
最初配置PJAX来绑定这些对象:
<script>
// this is how I define it in jquery-pjax, so adjust it as you use it.
$(document).pjax('a[data-pjax]', '#pjax-container');
</script>
所以我学到的关键点会导致PJAX刷新:
在你的情况下,如果pjax-container是&#34; #link-container&#34;我不确定将标签放在其中是否是个好主意。