我想要实现,动态生成的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");
});