Vue在点击内部元素时(获得焦点),怎样让外部div元素样式变化?

Vue聚焦高亮DIV
本文介绍了一种使用Vue实现当内部元素获得焦点时,使最外层div边框高亮的方法。通过设置div的tabindex属性为-1,并监听focusin和focusout事件来改变div的样式。

问题:

div内部有很多元素,div、 p、 span 、input等,各元素有嵌套,现在点击某元素时需要最外面这个div边框高亮,例如,点击了input开始输入

假设html 结构如下

 <div>
    <p>最外部div高亮测试</p>
    <div>用vue如何实现选中下面这个input最外面的div边框会高亮<br/>
    <input type=text placeholder="请输入内容"/>
    </div>
</div>

解决要点

1. div要获得焦点,需要设置tabindex这个属性,值为-1(可以获得焦点事件,但不能用tab键选中,tabindex>=0时可以,这里设置为-1即可)

2.检测focusin和focusout事件并改变div的class(focus并不会向父级传播)

在线演示代码

https://jsfiddle.net/f4rzn85o/3/

 

转载于:https://www.cnblogs.com/kuaiyuit/p/7354136.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值