我有一个问题,我尝试了几种方法来阻止链接的传播,但是没有成功。也许有人可以帮助我,并且会看到我的代码中的错误。
顺便说一句,我使用.on('click'),因为某些链接将通过ajax请求添加到DOM上。
$('.facette_mobile').on('click', '.facette_enfant a', function(event) {
event.preventDefault();
// or event.stopPropagation()
});
// OR
$('.facette_mobile').on('click', '.facette_enfant a', function() {
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section class="facette_mobile">
<div class="facette_enfant">
<a href="http://www.google.fr" data-id="3" data-intitule="Test 3" >Link to google </a>
</div>
</section>
答案 0 :(得分:1)
我发现了错误,实际上我调用了另一个js文件,并且里面有关于链接点击的简短代码。我删除了它,现在一切正常!
谢谢你们的回答!
答案 1 :(得分:0)
您不需要Jquery(即使通过ajax添加了一些链接)
第一部分是一个辅助函数,用于在特定事件(本例中为DOMContentLoaded)之后添加事件处理程序。 第二部分只是您已经拥有的普通js变体
function addEventHandler(elem, eventType, handler) {
if (elem.addEventListener)
elem.addEventListener (eventType, handler, false);
else if (elem.attachEvent)
elem.attachEvent ('on' + eventType, handler);
}
addEventHandler(document, 'DOMContentLoaded', function() {
var link = document.getElementsByClassName('link');
link[0].addEventListener('click', function(e){
e.preventDefault();
});
});
<a class="link" href="www.google.com">Go to google</a>
答案 2 :(得分:0)
点击事件发生时只需拨打.preventDefault()
。
$("a").on("click", function(e){
e.preventDefault();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="https://www.google.com" target="_blank">Google</a>
鼠标滚轮的添加
仅此一项不适用于鼠标滚轮单击,因为它与单击不同。也许您可以使用.mousedown()
和.mouseup()
,因为这些事件甚至是通过Mousewheel-Click触发的。