/***
* 防抖 单位时间只触发最后一次
* @param {?Number|300} time - 间隔时间
* @param {Function} fn - 执行事件
* @param {?String|"click"} event - 事件类型 例:"click"
* @param {Array} binding.value - [fn,event,time]
* 例:<el-button v-debounce="[reset,`click`,300]">刷新</el-button>
* 也可简写成:<el-button v-debounce="[reset]">刷新</el-button>
* 例:<el-input v-debounce="[reset,`input`,300]"></el-button>
*/
Vue.directive('debounce', {
inserted: function (el, binding) {
let [fn, event = "click", time = 300] = binding.value
let timer
let flag = true;//输入法标记
if (event === "input") {
el.addEventListener("compositionstart", () => {
flag = false;
})
el.addEventListener("compositionend", () => {
flag = true;
})
}
el.addEventListener(event, () => {
timer && clearTimeout(timer)
timer = setTimeout(() => {
if(flag)fn();
}, time)
})
}
})
vue input 防抖自定义指令(输入法判断)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 我来打自己脸了!!!!...刚刚发现在中文输入法下是无效的,有人能解决这个问题么 如果要求input只能输入数字怎...
- 场景 当页面的input在页面的位置比较靠下时,获取焦点会弹出系统键盘。在ios系统中键盘会把页面顶起来,让输入框...
- 昔有朝歌夜弦之高楼,上有倾城倾国之舞袖。 我的github: 李大玄我的私人博客: 李大玄我的简书: 李大玄我的C...
- 一、问题ios自定义输入法时input搜索框弹出软键盘出现“换行”,而没有“搜索”,且点“完成”不会执行input...