jquery-给未来元素添加事件

         delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。

         delegate()应用场景:js动态添加元素后需要给后添加的元素绑定事件,我称它为给未来元素添加事件。

$(selector).delegate( childSelector , eventsdata, function);

"selector": 父元素,必须是与要绑定未来事件元素的祖先元素,可以不是直接父元素,但是必须是祖先元素。

"childSelector": 需要绑定事件的未来元素

"events": 事件绑定,注意这里用了加s的单词,意思就是可以添加多个事件,用空格隔开就行,例如“click mouseenter mouseleave”

"data": 可选。规定传递到函数的额外数据。

"function": 规定当事件发生时运行的函数。

例如,

//当点击鼠标时,隐藏或显示 p 元素:

$("div").delegate("button","click",function(){
  $("p").slideToggle();
});

当然你也可以把json对象放到delegate里面,不提出来。 

var events = {
	'mouseenter': function(e){//注意,必须传e进来,不然会报错
		console.log('I am mouseenter function')
	},
	'mouseleave': function(e){
		console.log('I am mouseleave function')
	},
	'click': function(e){
		console.log($(this))
 		console.log(e.data)
	}
}
$('.myul').delegate('.myli div',events,'hahah');

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值