码迷,mamicode.com
首页 > Web开发 > 详细

jQuery中hover和blur使用代理delegate无效的解决方法

时间:2017-09-12 13:39:59      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:status   需要   line   blur   原因   key   use   func   class   

今天就遇到了这样的小问题:

$(document).ready(function(){
$(‘.status_on‘).hover(function(){
$(this).html(‘点击禁用‘);
$(this).css(‘color‘,‘red‘);
},function(){
$(this).html(‘已激活‘);
$(this).css(‘color‘,‘green‘);
});
});



但是当需要触发hover的元素是js后来生成的时候,hover是无效的.
于是第一反应是想到用delegate代理:

 $(document).delegate(‘.status_on‘,‘hover‘,function(){
$(this).html(‘点击禁用‘);
$(this).css(‘color‘,‘red‘);
});
$(document).delegate(‘.status_on‘,‘blur‘,function(){
$(this).html(‘已激活‘);
$(this).css(‘color‘,‘green‘);
});


因为hover不是标准的事件,因此无法直接使用live和delegate进行处理

同理,blur也是.

知道了原因,解决方法就很简单了,用mouseenter和mouseleave替代hover和blur就行了:

$(document).delegate(‘.status_on‘,‘mouseenter‘,function(){
$(this).html(‘点击禁用‘);
$(this).css(‘color‘,‘red‘);
});
$(document).delegate(‘.status_on‘,‘mouseleave‘,function(){
$(this).html(‘已激活‘);
$(this).css(‘color‘,‘green‘);
});

 

 

jQuery中hover和blur使用代理delegate无效的解决方法

标签:status   需要   line   blur   原因   key   use   func   class   

原文地址:http://www.cnblogs.com/chessYu/p/7509473.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!