vue & button & refs & click & bug

$refs.btn.click() ???

vue & refs

$refs.btn.$emit("click")

https://vuejs.org/v2/api/#vm-refs

https://vuejs.org/v2/api/#ref

https://vuejs.org/v2/guide/components-edge-cases.html#Accessing-Child-Component-Instances-amp-Child-Elements

$emit("click") & click()

ok

https://codepen.io/webgeeker/pen/rPQyMN?editors=1010

https://codepen.io/webgeeker/pen/BMGWmq?editors=1010

bug

https://codepen.io/webgeeker/pen/vbQxZW?editors=1010

vue & emit

https://vuejs.org/v2/api/#vm-emit


this.$refs.btn.$emit("click"')

this.$refs.inputResult.$emit('click')

http://www.imooc.com/wenda/detail/418881


OK

vue & keyboard Shortcut Keys


// shortcut keys
keyboardShortcutKeys() {
// // operType: "1",// 0 上一页; 1 下一页
let that = this;
// bug ??? range conflict ???
let body = document.querySelector(`body`);
// let body = document.querySelector(`[data-body="common-handle"]`);
let bindFlag = body.dataset.bindFlag;
if (bindFlag === "true") {
// console.log(`only need binding once!`);
} else {
body.dataset.bindFlag = "true";
// bind once
body.addEventListener("keyup", function(e) {
let key = e.which || e.keyCode;
if(e.which === 17) {
// init
this.isCtrlPressed = false;
}
});
body.addEventListener("keydown", function(e) {
let key = e.which || e.keyCode;
if(e.which === 17) {
this.isCtrlPressed = true;
}
let isCtrl = this.isCtrlPressed;
if(e.which === 83 && isCtrl) {
if (that.onClickButton) {
that.onClickButton(`save`);
}
}
if(e.which === 68 && isCtrl) {
if (that.clickGetNewsInfos) {
if (!that.isFirstNews) {
// that.clickGetNewsInfos(`prev`);
// that.$refs.commom_handle_prev.click();
that.$refs.commom_handle_prev.$emit("click");
// that.$refs["commom_handle_prev"].click();
console.log(`prev btn click ok!`);
} else {
// btn bug
console.log(`prev btn bug!`);
}
}
}
if(e.which === 70 && isCtrl) {
if (that.clickGetNewsInfos) {
if (!that.isLastNews) {
// that.clickGetNewsInfos(`next`);
// that.$refs.commom_handle_next.click();
that.$refs.commom_handle_next.$emit("click");
// that.$refs["commom_handle_next"].click();
console.log(`next btn click ok!`);
} else {
// btn bug
console.log(`next btn bug!`);
}
}
}
if(e.which === 88 && isCtrl) {
if (that.clickShowResureModal) {
that.clickShowResureModal(`passed`);
}
}
});
}
},

vue & button & refs & click & bug的更多相关文章

  1. vue & template & v-else & v-for bug

    vue & template & v-else & v-for bug nested table bug https://codepen.io/xgqfrms/pen/wvaG ...

  2. Xamarin for android:为button设置click事件的几种方法

    原文:Xamarin for android:为button设置click事件的几种方法 在Xamarin中一个最基础的事情,就是为一个button指定click事件处理方法,可是即使是这么一件事也有 ...

  3. vue中$refs的使用

    vue中$refs获取组件或元素: 获取的元素就相当于是一个原生获取的元素,可以进行操作 this.$refs.ele.style.color = 'red

  4. vue & lifecycle methods & this bug & ES6 Arrow function & this bind bug

    vue & lifecycle methods & this bug ES6 Arrow function & this bind bug bad fetchTableData ...

  5. jq动态增加的button标签click回调失效的问题,即动态增加的button标签绑定事件$("button.class").click(function)无效

    对于新增加的页面元素,改变了页面结构,如果是使用老办法$("button.class").click(function)去监听新的button标签事件,会失效. 笔者的应用是文字的 ...

  6. Button的Click事件与js函数的两种不同顺序触发方式

    先运行js.或者先运行Click事件,近期就遇到了这个问题,開始弄了两个button分别运行,那才叫一个蛋疼... 1.先运行js,再运行Button的Click函数 <asp:Button I ...

  7. vue 阻止冒泡 @click.stop=

    vue 阻止冒泡 @click.stop= vue中处理冒泡标准姿势 事件修饰符 Vue.js 为 v-on 提供了事件修饰符,修饰符是由点开头的指令后缀来表示的.这些事件修饰符主要有以下几个: st ...

  8. vue watch & arrow function bug

    vue watch & arrow function bug watch: { GeoJSON: function(newValue, oldValue) { log(`\n\n\nGeoJS ...

  9. vue.js $refs和$emit 父子组件交互

    父调子 $refs (把父组件的数据传给子组件)  <template> <div id="app"> <input type="butto ...

随机推荐

  1. Cisco Packet Tracer中两台电脑通信设置

    Cisco Packet Tracer是网络初学者仿真模拟网络环境的必备工具.今天我们来模拟下两台电脑之间的通信. Cisco Packet Tracer版本6.2.0 一.添加设备 1.这里添加一个 ...

  2. 小佬頭眼里的读研VS工作

    最近小佬頭在各种平台和论坛看到很多临近毕业的本科生在纠结读研和工作.于他们来说,人生到了一个十字路口,需要做出一个选择然后继续前行,今天小佬頭就来聊聊读研和工作的话题. 其实有这个考虑的同学不在少数, ...

  3. 随机图片api

    什么是随机图片api 随机图片api是什么呢?通俗的讲就是当你访问一个api时,浏览器会随机返回给你一张图片. 其实原理很简单,把你要随机的图片放在一起,然后写一个php,当php被访问时,就随机指向 ...

  4. 关于IPointerEnterHandler和IpointerExitHandler的简单说明

    自己在学习UGUI背包系统时用到了,而且遇到一些问题,所以在这里写一下这两个接口的简单说明. 继承IPointerEnterHandler和IpointerExitHandler这两个接口后可以实现两 ...

  5. 高可用OpenStack(Queen版)集群-14.Openstack集成Ceph准备

    参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...

  6. 1分钟入门接口自动化框架Karate

    介绍 在这篇文章中,我们将介绍一下开源的Web-API自动化测试框架——Karate Karate是基于另一个BDD测试框架Cucumber来建立的,并且共用了一些相同的思想.其中之一就是使用Gher ...

  7. 2019第十届蓝桥杯 E题 迷宫

    /*输入 30 50 01010101001011001001010110010110100100001000101010 00001000100000101010010000100000001001 ...

  8. 随手记录-linux-添加epel源

    下载各种yum源 https://opsx.alibaba.com/mirror https://blog.csdn.net/harbor1981/article/details/51135623

  9. JavaWeb项目通过调用cmd实现备份数据库的功能

    1.别急着上车,先测试一下能否成功调用cmd,可以尝试通过cmd命令打开计算器,代码如下:     2.能成功打开计算器后,证明调用cmd的方法是没错的,现在把cmd命令字符串改成我们备份数据库的 命 ...

  10. 忘记本地MySQL数据库密码的解决方案。

    忘记本地MySQL数据库密码,解决方案,分以下10个步骤: 参考链接:                  https://blog.csdn.net/weidong_y/article/details ...