JS焦点事件和事件冒泡

焦点事件

JS中focus事件获得焦点,blur失去焦点,这些事件默认情况下只有表单可以触发,如果想让div等元素触发需要加tabindex属性

<div class="list" :class="{change:isclick}" @blur="listBlur" tabindex="-1">

当属性值为其他时候可以像其他表单一样用tab键切换,当属性值为-1时不能用tab切换
blur和focus不能事件冒泡

事件冒泡

在JS的事件中,如果子元素和父元素有相同的事件绑定,在触发绑定事件时会进行事件冒泡,从子元素逐层向上冒泡,但是有时候会不希望事件冒泡,所以JS提供了取消事件冒泡的方法

// w3c的方法是e.stopPropagation(),IE则是使用e.cancelBubble = true
        e.stopPropagation()
        console.log('取消冒泡');
        // e.cancelBubble = true

这样就不会出现事件冒泡了

手动跳转页面

虽然取消默认事件可以取消绑定的点击事件,但是对于a链接来说,默认的跳转事件不会受到取消默认事件的影响,添加的点击事件会受到取消默认事件的影响,基于这种特性,可以通过给a链接绑定点击事件手动跳转页面的方法实现a链接中子元素点击不跳转页面
1.在html中给a的herf属性赋值JavaScript:;,并且添加自定义属性代替herf保存跳转的目标

<a href="javascript:;" goal="https://www.bilibili.com/">

2.在JS中给a绑定点击事件,并且通过自定义属性获取跳转目标

window.location=this.getAttribute('goal')
// Javascript刷新页面的几种方法:
        // history.go(0)
        // location.reload()
        // location=location
        // location.assign(location)
        // document.execCommand('Refresh')
        // window.navigate(location)
        // location.replace(location)
        // document.URL=location.href
        // window.location=this.getAttribute('goal')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值