我正在尝试阻止菜单中的默认链接点击操作。我使用下面的代码,但是,我注意到当我点击Link 1
然后Link 5
然后返回Link 1
时,会发生默认操作。
<ul class="menu">
<li><a href="page1.html">Link 1</a>
<ul>
<li><a href="page2.html">Link 2</a></li>
<li><a href="page3.html">Link 3</a></li>
<li><a href="page4.html">Link 4</a></li>
</ul>
</li>
<li><a href="page5.html">Link 5</a></li>
</ul>
JS:
$(".menu a").one("touchstart, click", false);
我想做的是:
.one()
,因此再次单击时,默认操作不会立即发生,直到第二次连续单击。 答案 0 :(得分:2)
喜欢这个Example
$(document).ready(function(){
var lastClicked;
$(".menu a").on("touchstart click", function(e){
if(lastClicked!==$(this).attr('href')){
e.preventDefault();
lastClicked=$(this).attr('href');
}
});
});
答案 1 :(得分:1)
使用数据属性来设置临时值。
意识形态示例:
<a href="page1.html" data-proceed="false">Link 1</a>
<a href="page2.html" data-proceed="false">Link 2</a>
$('a').click(function(e) {
$('a').not(this).attr('data-proceed', 'false'); // reset to false for all other links. Use classes as per your requirement
if($(this).attr('data-proceed')==='false')
{
e.preventDefault(); // if this is the first time
$(this).attr('data-proceed', 'true'); // so that from the next click it will proceed
}
});