jQuery的on()、one()与off()事件方法

目录

一.on()方法

1.使用on()方法

2.on()方法事件事件委托

3.【重点】使用on()方法给未来要创建的元素绑定事件

二.off()方法

三.one()方法

四.自动触发事件

五.阻止默认行为以及冒泡 


一.on()方法

1.使用on()方法

相信我们都不陌生jQuery的on()方法,它可以在匹配元素上绑定一个或者多个事件处理函数,这也是on()方法的一个亮点

$(element).on(events[,selector],callback)

//events:一个或者多个使用空格分隔开来的事件类型
//selector:绑定事件元素的子元素选择器
//callback:回调函数【也就是绑定在元素身上的监听函数】

 有俩种书写方式,我们分别来演示一下:

$(function(){
   $("div").on({
       click:function(){
        $(this).css("backgroundColor","red")
    },
       mouseenter:function(){
        $(this).css("backgroundColor","yellow")
    },
       mouseleave:function(){
        $(this).css("backgroundColor","")
    }
   })
})

//$("element").on({事件类型:callback,事件类型:callback,事件类型:callback})
<style>
    div{
        width: 500px;
        height: 500px;
        background-color: blue;
    }
    .current{
        background-color: aquamarine;
    }
</style>
<script>
$(function(){
   $("div").on("mouseenter mouseleave",function(){
       $(this).toggleClass("current")
   })
})
   
</script>
<body>
    <div></div>
</body>


<!--$(element).on("事件类型 事件类型 事件类型",callback)--!>

2.on()方法事件事件委托

$("ul").on("click","li",function(){
    console.log("a")
})

click点击事件绑定在ul身上,但是触发事件是ul中的li

执行过程:点击li没有过程,但是会开始事件冒泡,冒泡到父级ul,发现父级有li,那么立即执行ul身上绑定事件的回调函数

3.【重点】使用on()方法给未来要创建的元素绑定事件

我们普通的事件绑定是不能给未来创建的元素来绑定事件的,因为一开始没有元素,所以没有查找到

可是使用on()就可以实现未来元素的绑定

假如现在有一个ul的人,他的孩子马上就出生了,我们必须要给即将出生的孩子买新衣服,怎么做才能让提前买好衣服,孩子一出生就可以穿上呢?

<ul></ul>

我们给ul即将出生的li绑定事件:

$("ul").on("click","li",()=> {
    $("li").css("fontSize","100px")
})

孩子出生了,我们看一看孩子有没有穿上新衣服:

const son = $("<li>孩子</li>")
$("ul").append(son)

 点击孩子(li),孩子变大了,说明成功


二.off()方法

off()方法可以移除通过on()方法添加的事件处理程序

$("ul").off("click")

//去除ul的点击事件

这只是普通on()事件的移除方法,如果是事件委托我们应该怎么解除:

$("ul").off("click","li")

解除所有事件处理程序:

$("ul").off()

三.one()方法

我们知道了on()绑定、off()解绑,那么one()又是什么?

如果有的事件我们只想触发一次,那么可以利用one()来绑定(取代on())


四.自动触发事件

叫做自动触发事件,其实就是手动的将on()绑定的事件触发

element.click()
element.trigger("click","传递额外参数值")
element.triggerHandler("click","传递额外参数值")

triggerHandler不会触发元素默认行为,并且不会冒泡

五.阻止默认行为以及冒泡 

只要事件被触发,那么就会有事件对象的产生

//阻止默认行为
event.preventDefault()
//或者return false

//阻止冒泡
event.stoppropagtion()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Try Tomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值