如何识别`<a>` has been visited or not in jquery</a>

时间:2010-03-11 11:24:06

标签: jquery

想知道,如何识别是否在jquery中访问过<a>。 即

if(`<a> has been visited`)
{
   //execute this code
}
else
{
   //execute that code
}

6 个答案:

答案 0 :(得分:2)

要在点击链接时执行代码,您可以使用:

$('a').click(function() {

   // execute this code

});

<击> 用于在特定时间执行代码以检查所有链接:

// adding event handler on page load
$('a').click(function() {

   // save that it has been clicked on this link
   $(this).attr('hasBeenClicked', 'true');

});

// execude this on demand
$('a').each(function() {

   if($(this).attr('hasBeenClicked') == 'true')
   {
          // execute code
   }
   else
   {
          // execute code
   }

});

答案 1 :(得分:2)

如果我理解正确,您想要检测用户先前访问过的链接(在页面上)(来自此页面或任何其他页面),对吧?

我相信没有100%的方法,但这个黑客可能有所帮助。它是这样的:首先你设置你的CSS,以便a:linka:visited之间有区别,你稍后会用它来衡量每个链接。

例如,您可以像这样设置CSS:

a, a:link { margin: 0 }
a:visited { margin-bottom: 1px }

然后如果你的html是这个(显然访问了stackoverflow.com,而其他垃圾链接没有):

<a href="http://stackoverflow.com">stackoverflow.com</a><br>
<a href="http://fjhgsfljhgsljf">some unvisited link</a>​

您可以使用此脚本测量它们:

​$('a').each(function () {
    var isClicked = !!parseInt($(this).css('margin-bottom'));
    alert('Is ' + $(this).text() + ' visited: ' + isClicked);
});​​​​​​​​​​​​​​

!!parseInt('1px')收益率true!!parseInt('0px')收益率false

我选择margin-bottom可衡量,因为它在我的情况下没有视觉区别。你可以选择别的东西。

答案 2 :(得分:0)

如果您要在代码中的某处检查是否在任何给定时间点击了链接,只需使用变量。

var aClicked = false;
$('identifier to the a').click(function() {aClicked = true});

您想要进行检查:

if( aClicked ) {
}

答案 3 :(得分:0)

您在寻找click事件吗?

答案 4 :(得分:0)

$('a').click(function(e) {
    e.preventDefault()
    if( !$(this).data('clicked') ) {
       $(this).data('clicked', 1);
       something();
    }
});

答案 5 :(得分:0)

好的....让我们通过使用类属性来做到这一点。

在jQuery中

$('a').click(function() {
   if (!$(this).hasClass("clicked")) {
     $(this).addClass("clicked");
   }
   //You can toggle by doing this 
   //else  {
   //  $(this).removeClass("clicked");
   //}

   if ($(this).hasClass("clicked")) {
     //Do Stuff....
   }
});

这样,您可以遍历<a>并检查$(this).hasClass("clicked"))是否这样:

$('a').each(function() {
  if ($(this).hasClass("clicked")) {
     //Do Stuff....
   }
});