Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
使用Ajax、jQuery时维护:已访问链接的方法_Jquery_Ajax - Fatal编程技术网

使用Ajax、jQuery时维护:已访问链接的方法

使用Ajax、jQuery时维护:已访问链接的方法,jquery,ajax,Jquery,Ajax,我正在使用jQueryAjax将内容加载到我的网页中 当用户单击某个链接时,href会变为不同的颜色,表示他们已单击该链接。然而,问题是,当ajax内容从页面中刷新以加载其他内容,然后返回时,用户以前所做的href选择将不再被维护 我正在寻找一种方法来跟踪用户在浏览ajax网站时访问了哪些链接,以便所有a:visted链接保持持久性 内容是动态的,由一个MySQL数据库提供。如果您使用ajax加载内容,我会假设跟踪以前单击的内容是否只是使用类 $(document).on('click', 'a

我正在使用jQueryAjax将内容加载到我的网页中

当用户单击某个链接时,href会变为不同的颜色,表示他们已单击该链接。然而,问题是,当ajax内容从页面中刷新以加载其他内容,然后返回时,用户以前所做的href选择将不再被维护

我正在寻找一种方法来跟踪用户在浏览ajax网站时访问了哪些链接,以便所有
a:visted
链接保持持久性


内容是动态的,由一个MySQL数据库提供。

如果您使用ajax加载内容,我会假设跟踪以前单击的内容是否只是使用类

$(document).on('click', 'a', function(e) {
    e.preventDefault();
    //do some ajax stuff
    $(this).addClass('visited');
});

如果您正在使用ajax重新加载内容,并且希望所访问的链接被记住,那么它们就不会被记住。您可能需要使用cookie、本地存储或跟踪在服务器上单击的内容,例如在会话变量中,在获取内容的同一ajax调用中使用正确的链接进行更新


接下来的问题是,为什么要从数据库中重新加载内容,而不是在页面上已经存在内容时将其分离并重新附加。

DOM是什么样子的?您对ajax响应做了什么?是否覆盖页面中的页面\元素?什么是
:访问了
a:visited?
中的
:访问了吗?
只需在DOM中插入新元素,不要覆盖旧元素。我相信他还有其他问题。他可能正在用ajax响应做一些事情。这或多或少是我所拥有的,而且是有效的。让我们将此内容称为A。但是当用户加载内容B(刷新内容A),然后返回并再次加载内容A时,这些href选择不再存在。对于您的编辑>>编辑>>好问题。我从未考虑过分离内容。我可以在jQuery中这样做,还是在PHP中这样做?是的,看看jQuery,它保留了事件处理程序等,让您只将已加载的内容保留在变量中,然后在稍后有人单击同一链接时将其放回,而不必重新加载已加载的内容。您将需要一个函数来检查它——内容已经从数据库加载了,但是一些简单的事情,比如检查是否定义了变量,或者做了什么。