js去掉浏览器右键点击默认事件(+vue项目开启右键行为)

js去掉浏览器右键点击默认事件

1、阻止整个页面所有的右击事件

document.oncontextmenu = function(){
  return false;
}

 

2、特定的区域/元素

document.getElementById("test").oncontextmenu = function(e){
  return false;
}

 

3、去掉以后给需要的区块加特定的事件

js:

document.getElementById("test").onmousedown = function(e){
  if(e.button ==2){
    alert("你点了右键");
  }else if(e.button ==0){
    alert("你点了左键");
  }else if(e.button ==1){
    alert("你点了滚轮");
  }
}

jq:

$("#test").mousedown(function(e){
  //doing
});

 

4、通过jq bind绑定和触发

$('').bind("contextmenu",function (e){

   //doning

   return false;

});

$('').trigger('contextmenu');

 

Vue-阻止事件冒泡-开启右键-键盘类事件

1、阻止事件冒泡

  当点击按钮时,会触发button的click也会触发父级的方法

<div id="box">
     <div @click="parentShow">
        <button type="button" @click="show()">按钮</button>
     </div>
</div>

解决方法:

  第一种方法,传入一个event对象,然后对象里有cancelBubble方法,设置为true

<div id="box">
     <div @click="parentShow">
          <button type="button" @click="show($event)">按钮</button>
     </div>
</div>
methods: {
     show: function(ev){
          alert(1);
          ev.cancelBubble = true;
     },
     parentShow: function(){
          alert(2);
     }
}

  第二种方法是vue封装好的,直接在click的后面加上.stop,建议使用

<div id="box">
     <div @click="parentShow">
           <button type="button" @click.stop="show()">按钮</button>
     </div>
</div>

2、阻止左键,开启右键行为

  按钮的右键行为,vue事件。这里的prevent是关闭默认行为,相当于 传个$event 然后 event.preventDefault();

<button type="button" @contextmenu.prevent="show1()">按钮</button>

3、键盘类事件

  keyup、keydown是监听键盘按下,弹起事件,后面的.enter是指定键盘的按键,比如常见的:up、down、left、right、enter、tab等

<input type="text" @keyup.enter="show2()" />

  也可以通过$event的keyCode来获取键盘的值。比如:

<input type="text" @keydown="show2($event)" />
show2: function(ev){
       console.log(ev.keyCode);
}

 

参考文章:https://www.cnblogs.com/zycbloger/p/5643122.html

转载于:https://www.cnblogs.com/rachelch/p/8135883.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值