我正在运行CakePHP 2.5.X,我们有CMS设置可以在管理员中创建页面,然后关联到导航。我还添加了将页面设置为链接的选项,因此我们没有重复的内容/页面。我们发现如果我们创建一个页面(A)作为父页面,另一个父页面(B)就会有一个子页面(C),其父页面的内容为A,然后创建同一个页面(D)内容反而使导航系统知道,使这个链接C.设置URL变量Jquery ajax POST php会话来确定活动页面
示例HTML:
<ul class="nav">
<li data-id="1"><a href="/a">A
<ul>
<li data-id="2" parent-page="1"><a href="/c">C</li>
</ul>
</li>
<li data-id="3"><a href="/b">B
<ul>
<li data-id="4" parent-page="3"><a href="/c">D</li>
</ul>
</li>
</ul>
问题,点击d,当你再发送到网页C,其然后将父页面A设置为活动的。为了防止这种情况并确保B和D保持活动链接(class =“active”),我使用jquery和ajax发布到php脚本,然后将页面id写入我可以阅读的会话页面加载并将适当的页面设置为活动状态。但它似乎并不奏效。在铬我没有问题,它的FireFox,IE浏览器,Safari等给我的问题。本质上它不起作用或者只是部分工作。
$("ul.child li a").click(function() {
$.ajax({
type: 'POST',
url: "https://stackoverflow.com/users/setSession/",
data : {
current_page_id: $(this).parent().attr('data-id'),
page_parent_id: $(this).parent().attr('page-parent')
}
}).done(function(msg) {
<?php if ($this->Session->check('User.User.id') == 1) { ?>
alert(msg);
<? } ?>
});
});
有没有人有任何想法或其他解决方案?
一旦链接被点击,页面重定向。因此,一旦ajax调用完成,将活动类分配给li项目将毫无意义,因为页面会重新加载,并且这些更改将会丢失。 – 2014-10-27 20:25:07