当按下中键单击时停止Onclick执行 - javascript / jquery



这类似于我的代码:

<li class="dropdown" id="dropdown1"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown<b class="caret"></b></a>
<ul class="dropdown-menu">
<li id="li-1"><a href="#" onclick="Alert("li-1")">List1</a></li>
<li id="li-2"><a href="#" onclick="Alert("li-2")">List</a></li>
</ul>
</li>

但是当按下中键单击时,我想停止执行我的 onclick 事件。

每当单击中间按钮时,类似的东西都会禁用onclick。

$(document).mousedown(function(e) {
if (e.which == 2) {
e.preventDefault();
alert("middle button");
$('a').prop("onclick", null); // disable onclick
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="dropdown" id="dropdown1"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown<b class="caret"></b></a>
<ul class="dropdown-menu">
<li id="li-1"><a href="#" onclick='alert("li-1")'>List1</a>
</li>
<li id="li-2"><a href="#" onclick='alert("li-2")'>List</a>
</li>
</ul>
</li>

event.button的值分别为 0,1,2,分别表示鼠标左键、中键和右键。知道了这一点,您可以利用短路评估来完成工作。

(event.button !=1 ) && !alert('li-1')基本相同

if(event.button != 1){
return !alert('li-i') // true (just to make sure the event it sent)
return false;
如果alert()

中键未单击代码段中的第一个li,则alert()鼠标左

键单击的第二个li

<li class="dropdown" id="dropdown1"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown<b class="caret"></b></a>
<ul class="dropdown-menu">
<li id="li-1"><a href="#" onclick="(event.button!=1 ) && !alert('li-1')">List1</a>
</li>
<li id="li-2"><a href="#" onclick="(event.button!= 0 ) && !alert('li-2')">List2</a>
</li>
</ul>
</li>

最新更新