想知道,如何识别是否在jquery中访问过<a>
。
即
if(`<a> has been visited`)
{
//execute this code
}
else
{
//execute that code
}
答案 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:link
和a: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....
}
});