分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

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

发布时间:2023-09-06 01:10责任编辑:彭小芳关键词:jQuery

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

$(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无效的解决方法

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved