我有这样一个问题:我有一个链接,点击它会在当前页面顶部的模式对话框中打开 ajaxFormDialog。但是当我单击中间按钮时,它会在新选项卡中打开,并且所有内容都不在模式窗口中,而是当前在新选项卡页面上并且看起来很糟糕。所以,我的问题是,如何禁用鼠标中键单击当前链接?
<a class="ajaxFormDialog" ...></a>
<script>
$(function (){
$('a.ajaxFormDialog').live("click", function(e) {
$.ajax({
type: "POST",
url: $("#formContent form").attr("action"),
data: $("#formContent form").serialize(),
success: function(data) {
//... do something
}
});
});
</script>
UPD我用了你的建议
if(e.which == 2) {
e.preventDefault();
}
它可能会阻止默认,但仍会使用该表单打开新选项卡。当我点击链接上的中间/鼠标滚轮按钮时,它甚至没有向我显示,他输入了这个 $(function (){ $('a.ajaxFormDialog').on("click", function(e) { .. .
UPD2我写了这样的代码:
$(function (){
$('a.ajaxFormDialog').live("click", function(e) {
console.log("Which button is clicked: " + e.which);
if(e.which == 2) {
e.preventDefault();
}
// rest of the code...
因此,当我单击鼠标左键时,控制台会显示“单击了哪个按钮:1”,但是当我单击中间/鼠标滚轮按钮时,它什么也没显示,并且仍然在新选项卡中打开。