您的位置:首页 > Web前端 > JQuery

jquery中hover和blur使用delegate失效的解决办法

2017-06-20 10:52 465 查看
我想要实现,动态生成的span,再绑定hover事件,使得悬浮到span上时出现放大镜图片



结果遇到了

$("#jnBrandList").delegate(".imageMask", "hover", function(){
$(this).toggleClass("imageOver");
});


就是不执行的情况。

一开始以为是我使用的jquery不支持delegate动态绑定事件,但是jquery1.8以后是支持的,所以排除。

后来看到了这篇博客http://www.thinksaas.cn/topics/0/455/455142.html 说delegate失效的原因是要绑定的事件不支持事件冒泡,而因为delegate原理是依靠事件冒泡处理的所以delegate会失效。于是,想到可能的事件的原因,后来查到原因。是jquery1.9之后,因为hover、blur不是标准的事件,因此无法直接使用live和delegate进行处理。可以用mouseenter和mouseleave代替。果然问题解决了。

$("#jnBrandList").delegate(".imageMask", "mouseenter mouseleave", function(){
$(this).toggleClass("imageOver");
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: