jQuery初学踩坑记录

问题:

1.jQuery绑定的事件第一次点击无效,第二次才有用?

2.ajax局部刷新页面后,jQuery事件失效?

3.按钮和页面同时存在点击事件,结果点击按钮出现2种事件?

 

解答:

1.第一次点击无效很大原因是由于在函数中绑定的事件,如:

function test(){

    $('div').on('click',function(event){

         console.log('div click!');

})

}

如果这么写,不管这个函数在哪调用,每次第一次点击都无效,原因是第一次点击时函数被执行,此时才实现了div元素绑定了click事件,所以click事件只能在下次点击时触发。 

解决方案:不要在函数绑定事件,直接绑定就好。

 

2.ajax刷新局部页面后,由于该页面的元素是后来生成的,所以初始化绑定事件对他无效,如:

$('div').on('click',function(event){

    console.log('div click!');

})

解决方案:使用事件委托,从最近的一个不会发生改变的父类元素开始定位该元素,如:

$(body).on('click','div',function(event){

    console.log('div click!');

}) 

 由于body是不会改变的,所以不管ajax怎么刷新,新生成的div都可以被绑定click事件。

 

3.该问题可以使用冒泡解决,因为按钮存在于页面,点击按钮相当于点击了按钮和页面,此时阻止冒泡即可:

event.stopPropagation();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值