当我点击第一个链接时,pjax会使用正确的内容触发。但是,当我选择第二个链接时,pjax会添加到alread选择链接,如“http://localhost.com/name/test1/name/test2/”,然后返回到索引页面。我猜是因为增加了第二个链接。我该如何解决这个问题?
<li><a data-pjax='#content' href="name/test1/"> test1 </a></li>
<li><a data-pjax='#content' href="name/test2/"> test2</a></li>
<li><a data-pjax='#content' href="name/test3/"> test3 </a></li>
<script type="text/javascript">
$(document).ready(function(){
$(function(){
$('a[data-pjax]').pjax({container:'#content',timeout:15000});
});
});
</script>
答案 0 :(得分:1)
可能是因为您在链接中使用相对路径,请尝试将其更改为:
<li><a data-pjax='#content' href="/name/test1/"> test1 </a></li>
<li><a data-pjax='#content' href="/name/test2/"> test2</a></li>
<li><a data-pjax='#content' href="/name/test3/"> test3 </a></li>
在/
属性的开头添加href
。
假设您从/
开始,当您点击第一个链接时,pjax会将页面位置windows.location
更改为/name/test1/
。页面name/test2/
上/name/test1/
的链接表示/name/test1/
+ name/test2/
=&gt; /name/test1/name/test2/
,因为它是一条相对路径。