2015-10-13 48 views
1

我有一个问题给你们。如何检测页面上多次点击的同一个锚链接?

可以说我有在同一页上为http://jquery.com/#myAnchor

现在的内部锚链接,如果我点击锚,然后将URL http://jquery.com/#myAnchor

如果我点击锚再一次,该网址将再次是http://jquery.com/#myAnchor

又名,该网址实际上并没有改变..只是在页面上点击两次链接。我如何检测内部锚已被再次点击? 例如

<a name="myAnchor"></a> 

如果上面的锚链接是在同一页上,然后我怎么发现这个hashChange。

其实我有函数检测页面上的hashChange,如下所示。但代码不能用于这一个特定的编码

$(window).on('load hashchange', function() { 
+1

写点击锚点的处理程序 –

+0

没有办法知道p页面的艺术可能有主角 –

+0

那么你将不得不找到一种方法来添加一个点击处理程序 – FranBran

回答

1

使用data-属性。当用户点击锚点链接时,只需增加数据属性即可。

$(document).ready(function(){ 
    $('a.myLink') .click(function(e) { 
     e.prevenDefault(); 
     var count = $(this).attr('data-clicked'); 
     count = parseInt(count) + 1; 
     $(this).attr('data-clicked', count); 
    }); 
}); 

<a class="myLink" data-clicked="0">Anchor Tag</a> 
+0

顺便说一句,如果这有助于你解决问题,请接受答案。 –

+1

在你的答案中检查'dta-clicked' –

0

您可以使用事件委托来跟踪点击,像

$(document).on('click', '[href="#myAnchor"]', function(){ 
//do whatever you want here 
}); 

而且命名锚已经过时,你应该用id!而非。

<section id="myAnchor"> 
</section> 
0

您可以检查这样也

$(document).on('click', 'a', function() { 
 
    var link = $(this).attr('href'), 
 
    currentLink = window.location.href; 
 
    if (link == currentLink) 
 
    return false; 
 
    else 
 
    //your conditions 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<a name="myAnchor" href="http://jquery.com/#myAnchor">Test</a>

相关问题