处理上点击链接自己 - JQuery的MOUSEDOWN(Handling clicks on l

2019-10-21 00:15发布

我想要处理的具体内容点击自己。 所以,如果我用左手mousebutton点击它,它会打开在当前标签页的链接,如果我与middlebutton单击它,它会打开它在一个新的选项卡。 我想从链接和使用window.open获取href属性做到这一点()

这甚至可能没有运行到popupblocker问题?

所以对于初学者,我试图阻止链接开幕。

HTML:

<a href="somelink.php" class="prev_cl"><img src="someimg.png" /></a>

使用Javascript:

$(function() {
    $('.prev_cl').on('mousedown', function(e){
        return false;
    });
})

但是,即使这是行不通的,它仍然打开的链接。 如果我之前把警报“返回false”它实际上不会触发点击显示alertbox。 但是,谁愿意一个警告框,每次他们点击一个链接?

我也尝试同时使用鼠标松开鼠标按下和事件,但没有任何工作

我想另一件事是把返回虚假元素本身,意思是:

 <a href="somelink.php" onclick="return false" class="prev_cl"><img src="someimg.png" /></a>

然后在JavaScript的部分我加window.open()把它

但是1)middlemousebutton仍然有效; 2)火狐块,因为它认为该窗口的打开它是一个弹出点击

Answer 1:

event.preventDefault()的jQuery可以用来阻止事件的默认操作 ,在这种情况下,点击

http://api.jquery.com/event.preventdefault

此外,您还可以赶上中等(或)这样的鼠标按钮: jQuery的:检测如果点击中间或鼠标右键,如果是的话,这样做:



Answer 2:

把你在处理click事件,不是mousedown

 $(function() { $('.prev_cl').on({ 'click': function(e){ if (e.which == 1) { var button = "left"; } else { button = "middle"; } console.log(button+" click"); console.log(e.which); e.preventDefault(); }, 'contextmenu': function(e) { console.log("right click"); console.log(e.which); e.preventDefault(); } }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a href="somelink.php" class="prev_cl"><img src="someimg.png" /></a> 



文章来源: Handling clicks on links myself - JQuery Mousedown