我有一个列表,其中每个元素都包含一个链接。默认情况下,当列表元素具有“焦点”并且我按下ENTER键时,浏览器会自动重定向到该链接。有没有办法防止这种行为?
所以简单地说,我想我的问题是当用户在“焦点()”上点击ENTER时如何阻止链接打开
但是,我仍然希望在鼠标CLICK事件中保持链接打开行为!!
<ul>
<li> <a href="SOMELINK1">LINK1</a> </li>
<li> <a href="SOMELINK2">LINK2</a> </li>
<ul>
答案 0 :(得分:3)
$('ul a').on('keydown', function(e){
if(e.which === 13) //enter
e.preventDefault(); //prevent the default behavoir
//(a redirect in this case)
});
答案 1 :(得分:0)
onclick-event在“鼠标”点击和“输入”点击之间没有区别。您可以通过onkeydown检测点击“输入”。请注意,如果您删除此功能,您将无法/更难以浏览您的网站。
$('a').on( 'keydown', function( e ) {
if( e.which == 13 ) {
e.preventDefault();
}
} );
答案 2 :(得分:0)
删除您不希望使用的事件。
<style>.disabled { cursor: not-allowed; }</style>
<a class="disabled" href="blah">Click me</a>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script>
$(".disabled").on("click keydown", function(e){ e.preventDefault() });
</script>