Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否使用jQuery存储单击的链接状态?_Jquery_Css_Xhtml_Cookies - Fatal编程技术网

是否使用jQuery存储单击的链接状态?

是否使用jQuery存储单击的链接状态?,jquery,css,xhtml,cookies,Jquery,Css,Xhtml,Cookies,我的HTML是: $('#nav a').click(function () { $('#nav a').removeClass('current'); $(this).addClass('current'); return false; }); 如果有帮助,我的URL是: 使用上面的jQuery代码–当用户刷新页面时,如何存储上次单击的链接?我是jQuery的初学者,尽管我在那里看到了答案,但大多数答案都与滑块或手风琴有关,因此在我的学习阶段,这些答案对我

我的HTML是:

$('#nav a').click(function () {  
    $('#nav a').removeClass('current');  
    $(this).addClass('current');
    return false;  
});
如果有帮助,我的URL是:

使用上面的jQuery代码–当用户刷新页面时,如何存储上次单击的链接?我是jQuery的初学者,尽管我在那里看到了答案,但大多数答案都与滑块或手风琴有关,因此在我的学习阶段,这些答案对我来说太复杂了


如果需要的话,请有人帮忙,或者展示一下如何实现代码或插件。我在网上旅行时看到了一个cookies插件。你的链接有ID吗?如果是这样,单击时只需将ID存储在cookie中。比如说:

<ul id="nav">
<li><a class="current hoc" href="#spread1-anchor">Home</a> /</li>
<li><a class="bgc" href="#spread2-anchor">Background</a> /</li>
<li><a class="apc" href="#spread3-anchor">Approach</a> /</li>
<li><a class="clc" href="#spread4-anchor">Client</a> /</li>
<li><a class="sec" href="#spread5-anchor">Services</a> /</li>
<li><a class="coc" href="#spread5-anchor">Contact</a></li>
</ul>

使用jQuery可以减少直接设置cookie的麻烦因素。在页面加载时,查找cookie(请参阅文档),读取其值(如果存在),现在您知道上次单击的链接的ID。

您的链接是否有ID?如果是这样,单击时只需将ID存储在cookie中。比如说:

<ul id="nav">
<li><a class="current hoc" href="#spread1-anchor">Home</a> /</li>
<li><a class="bgc" href="#spread2-anchor">Background</a> /</li>
<li><a class="apc" href="#spread3-anchor">Approach</a> /</li>
<li><a class="clc" href="#spread4-anchor">Client</a> /</li>
<li><a class="sec" href="#spread5-anchor">Services</a> /</li>
<li><a class="coc" href="#spread5-anchor">Contact</a></li>
</ul>

使用jQuery可以减少直接设置cookie的麻烦因素。在页面加载时,查找cookie(请参阅文档),读取其值(如果存在),现在您知道上次单击链接的ID。

首先,您需要一种唯一标识链接的方法—ID或href属性都可以。接下来,获取将为您处理cookie的代码。我会用的

您可以按如下方式存储上次使用的锚点的唯一标识符:

$('#nav a').click(function () {
  $.cookie('lastclicked',this.id);
  $('#nav a').removeClass('current');  
  $(this).addClass('current');
  return false;  
});
$('#nav a').click(function(){
    $(this).addClass('current').siblings().removeClass('current');

    // Create a cookie that will last 30 days with 
    // the name "link" containing this anchor's id attribute
    createCookie('link', this.id, 30);
    return false;
});
加载下一页时,按如下方式读取cookie:

$('#nav a').click(function () {
  $.cookie('lastclicked',this.id);
  $('#nav a').removeClass('current');  
  $(this).addClass('current');
  return false;  
});
$('#nav a').click(function(){
    $(this).addClass('current').siblings().removeClass('current');

    // Create a cookie that will last 30 days with 
    // the name "link" containing this anchor's id attribute
    createCookie('link', this.id, 30);
    return false;
});

首先,您需要一种唯一标识链接的方法—id或href属性都可以。接下来,获取将为您处理cookie的代码。我会用的

您可以按如下方式存储上次使用的锚点的唯一标识符:

$('#nav a').click(function () {
  $.cookie('lastclicked',this.id);
  $('#nav a').removeClass('current');  
  $(this).addClass('current');
  return false;  
});
$('#nav a').click(function(){
    $(this).addClass('current').siblings().removeClass('current');

    // Create a cookie that will last 30 days with 
    // the name "link" containing this anchor's id attribute
    createCookie('link', this.id, 30);
    return false;
});
加载下一页时,按如下方式读取cookie:

$('#nav a').click(function () {
  $.cookie('lastclicked',this.id);
  $('#nav a').removeClass('current');  
  $(this).addClass('current');
  return false;  
});
$('#nav a').click(function(){
    $(this).addClass('current').siblings().removeClass('current');

    // Create a cookie that will last 30 days with 
    // the name "link" containing this anchor's id attribute
    createCookie('link', this.id, 30);
    return false;
});
我会使用而不是cookies,这样它可以跨浏览器窗口/选项卡工作,而且它还提供了深度链接

var lastLink = readCookie('link');

if(lastLink){
    $('#' + lastLink).addClass('lastVisited');
}
我会使用而不是cookies,这样它可以跨浏览器窗口/选项卡工作,而且它还提供了深度链接

var lastLink = readCookie('link');

if(lastLink){
    $('#' + lastLink).addClass('lastVisited');
}

为什么要用饼干?你的链接有一个散列属性,所以我只是在动画完成后手动设置位置栏的散列

您没有包含执行滚动动画的代码,而是将已单击的中的哈希值存储在变量中,然后在对动画的回调中,设置location.hash

比如:

$('#nav a').click(function () {
  $.address.parameter('lastclicked', this.id);
  $('#nav a').removeClass('current');
  $(this).addClass('current');
  return false;
});
然后,如果用户刷新页面,散列将出现在那里


然后,您还可以通过使用location.hash检索哈希,在页面加载时将用户直接带到适当的部分。这将使这些部分成为书签。

为什么要使用cookies?你的链接有一个散列属性,所以我只是在动画完成后手动设置位置栏的散列

您没有包含执行滚动动画的代码,而是将已单击的中的哈希值存储在变量中,然后在对动画的回调中,设置location.hash

比如:

$('#nav a').click(function () {
  $.address.parameter('lastclicked', this.id);
  $('#nav a').removeClass('current');
  $(this).addClass('current');
  return false;
});
然后,如果用户刷新页面,散列将出现在那里


然后,您还可以通过使用location.hash检索哈希,在页面加载时将用户直接带到适当的部分。这将使节成为书签。

您可以使用localStorage保存数据。。。它在IE6和IE7中不受支持,尽管您可以使用本地存储来保存数据。。。它在IE6和IE7中不受支持,尽管Hi Ken,感谢v的快速响应!是的,我的每个都有一个id,所以我要在你添加的第二行的某个地方指定它们吗?我也应该为你发布我的html真的…嗨,肯,谢谢你的快速回复!是的,我的每个都有一个id,所以我要在你添加的第二行的某个地方指定它们吗?我也应该为你发布我的html真的…你好,易,我刚刚在我的页面上尝试了这个,我编辑了它,并在上面添加了URL。我的问题是,我只有一个页面。你的解决方案几乎奏效了——它一直让我回到正确的幻灯片,但导航a由于某种原因没有存储。我想我有50%的理解。@Karl我不太确定你所说的nav a没有存储是什么意思,你能澄清一下吗?对不起,我的意思是,当我刷新页面时,nav中的没有保持“.current”类的活动,即使URL中显示的哈希和幻灯片返回到同一个位置。它默认返回到主页链接。你好,易,我刚刚在我的页面上尝试了这个,我编辑了它并在上面添加了URL。问题是我只有一个页面。你的解决方案几乎奏效了——它一直让我回到正确的幻灯片,但导航a由于某种原因没有存储。我想我有50%的理解。@Karl我不太确定你所说的nav a没有存储是什么意思,你能澄清一下吗?对不起,我的意思是,当我刷新页面时,nav中的没有在“.current”类中保持活动状态,即使URL和幻灯片中显示了哈希 去同一个地方。它默认返回到主链接。