vue2.0的contextmenu右键弹出菜单的实例代码


Posted in Javascript onJuly 24, 2017

整理文档,搜刮出一个vue2.0的contextmenu右键弹出菜单的实例代码,稍微整理精简一下做下分享。

1.事情对象

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <meta charset="utf-8">
  <script src="http://unpkg.com/vue/dist/vue.js"></script>

  <script type="text/javascript">
    window.onload = function(){
      var vm = new Vue({
        el:'#box',
        methods:{
          show:function(event){
            console.log(event);  //event  这个就是事件对象了
          }
        }
      });
    }
  </script>
</head>
<body>
  <div id="box">
    <input type="button" value="按钮" @click="show($event)"> 
  </div>
</body>
</html>

通过show($event)把事件对象传到方法里

2.事件冒泡

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <meta charset="utf-8">
  <script src="http://unpkg.com/vue/dist/vue.js"></script>

  <script type="text/javascript">
    window.onload = function(){
      var vm = new Vue({
        el:'#box',
        methods:{
          show:function(){
            alert(1);
          },
          show1:function(){
            alert(2);
          }
        }
      });
    }
  </script>
</head>
<body>
  <div id="box">
    <div @click="show1()">
      <input type="button" value="按钮" @click="show()"> 
    </div>
  </div>
</body>
</html>

点击按钮的话他会,执行show ,show1方法,依次弹出1,2。

怎么来阻止

<1> 利用我们上面讲过的event对象:  event.cancelBubble = true;   //这种就阻止了

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <meta charset="utf-8">
  <script src="http://unpkg.com/vue/dist/vue.js"></script>

  <script type="text/javascript">
    window.onload = function(){
      var vm = new Vue({
        el:'#box',
        methods:{
          show:function(event){
            alert(1);
            event.cancelBubble = true;
          },
          show1:function(){
            alert(2);
          }
        }
      });
    }
  </script>
</head>
<body>
  <div id="box">
    <div @click="show1()">
      <input type="button" value="按钮" @click="show($event)"> 
    </div>
  </div>
</body>
</html>

<2>利用vue的方法阻止冒泡:给HTML元素绑定click事件的时候,改为@click.stop="show()"

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <meta charset="utf-8">
  <script src="http://unpkg.com/vue/dist/vue.js"></script>

  <script type="text/javascript">
    window.onload = function(){
      var vm = new Vue({
        el:'#box',
        methods:{
          show:function(event){
            alert(1);
            //event.cancelBubble = true;
          },
          show1:function(){
            alert(2);
          }
        }
      });
    }
  </script>
</head>
<body>
  <div id="box">
    <div @click="show1()">
      <input type="button" value="按钮" @click.stop="show()"> 
    </div>
  </div>
</body>
</html>

3.默认行为

比如contextmenu右键菜单

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <meta charset="utf-8">
  <!-- // <script src="vue.js"></script> -->
  <script src="http://unpkg.com/vue/dist/vue.js"></script>

  <script type="text/javascript">
    window.onload = function(){
      var vm = new Vue({
        el:'#box',
        methods:{
          show:function(){
            alert(1);
          },
          show1:function(){
            alert(2);
          }
        }
      });
    }
  </script>
</head>
<body>
  <div id="box">
    <input type="button" value="按钮" @contextmenu="show()"> 
    <input type="button" value="按钮1" @contextmenu.prevent="show1()"> 

    <p>//按钮右击点下去会依次出现 弹窗 1, 还有右击的默认菜单</p>
    <p>//按钮1右击只出现 弹窗 2</p>
  </div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery代码优化 事件委托篇
Nov 01 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
May 15 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
Dec 31 Javascript
在Mac OS下使用Node.js的简单教程
Jun 24 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
Feb 19 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
Apr 19 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
Jun 25 Javascript
浅谈Vue 初始化性能优化
Aug 31 Javascript
Vuex 快速入门(简单易懂)
Sep 20 Javascript
如何在Vue.js中实现标签页组件详解
Jan 02 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
Feb 23 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
Sep 04 Javascript
关于vue-resource报错450的解决方案
Jul 24 #Javascript
JavaScript中的FileReader图片预览上传功能实现代码
Jul 24 #Javascript
react-router4 嵌套路由的使用方法
Jul 24 #Javascript
关于react-router的几种配置方式详解
Jul 24 #Javascript
简单实现js放大镜效果
Jul 24 #Javascript
Vue列表页渲染优化详解
Jul 24 #Javascript
javascript cookie的基本操作(添加和删除)
Jul 24 #Javascript
You might like
PHP 数据库树的遍历方法
2009/02/06 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
javascript知识点收藏
2007/02/22 Javascript
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
JavaScript 栈的详解及实例代码
2017/01/22 Javascript
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
浅谈Python批处理文件夹中的txt文件
2019/03/11 Python
python os模块简单应用示例
2019/05/23 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
Django中URL的参数传递的实现
2019/08/04 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
Python实现Appium端口检测与释放的实现
2020/12/31 Python
Django项目在pycharm新建的步骤方法
2021/03/02 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
商务英语求职自荐信范文
2013/12/24 职场文书
运动会入场词100字
2014/02/06 职场文书
大学生在校表现评语
2014/12/31 职场文书
Python实战之实现简易的学生选课系统
2021/05/25 Python
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL