vue阻止默认_vue中,阻止默认事件

用vue的写法就是:

id="freeinput"

:rows="6"

placeholder="请输入自由条件内容(json格式)"

@focus="add_eventListener"

@blur="remove_eventListener">

methods:{

//在vue项目中,需要将事件监听封装成函数,让this托管,才能生效,所以是这样的写法。

add_eventListener() {

window.addEventListener('keydown', this.keyFun, true)

},

remove_eventListener() {

window.removeEventListener('keydown', this.keyFun, true)

},

keyFun(event) {

if (event.keyCode === 9) {

// 阻止默认事件

event.preventDefault();

let ids = " ";

// 获取对应标签

let obj = document.getElementById('freeinput');

// 获取光标的起始位置, 在未做人为选中的情况下, start和end是一样的

let start = obj.selectionStart; // 注意:使用vue对象时,没有selectionStart/selectionEnd属性,所以换成了原生js对象

let end = obj.selectionEnd;

// 获取选中的文本

let text = window.getSelection().toString();

// 如果有换行符, 需要替换, 实现效果同代码编辑器的选中集体缩进

text = ids + text.replace(/\n/g, '\n' + ids);

// 在原始光标位置中插入tab对应的字符

obj.value = obj.value.substring(0, start) + text + obj.value.substring(end);

// 将光标设置到新的位置

obj.setSelectionRange(start + ids.length, start + text.length);

}

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值