js原生态函数中使用jQuery中的 $(this)无效的解决方法
更新时间:2011年05月25日 23:02:11 作者:
今天遇到一个听郁闷的问题,正如title所说 js中原生态函数在jQuery 中使用 $(this) 被解析成undefined
我今天的例子是这样的,
$("ul li").hover(function(){
setTimeout(function(){
$(this).addClass("test");
alert("延迟了0.3s 我出现了!") //测试
},300)
})
在运行时,这个黄色部分是不执行的 ,然后我弹出了一下$(this)原来是undefined (其实已经猜到了);
然后我就没想(习惯),直接到百度找了,然后没找到答案,然后我就自己想,是不是换种方法,但是我觉得又不大合理,随后我就想到了 在里面读不到,外面可以读得到, 然后我就将$(this) 在setTimeout()外面赋给了一个变量。这样就迎刃而解了。哈哈,挺无语的问题吧,其实我在这里不是想说如何解决的,我是说这种思路,解决问题前先不要一味的去百度 谷歌
先要自己想想办法,真想不到,去找答案。
$("ul li").hover(function(){
var oLi = $(this);
setTimeout(function(){
oLi.addClass("test");
alert("延迟了0.3s 我出现了!") //测试
},300)
})
复制代码 代码如下:
$("ul li").hover(function(){
setTimeout(function(){
$(this).addClass("test");
alert("延迟了0.3s 我出现了!") //测试
},300)
})
在运行时,这个黄色部分是不执行的 ,然后我弹出了一下$(this)原来是undefined (其实已经猜到了);
然后我就没想(习惯),直接到百度找了,然后没找到答案,然后我就自己想,是不是换种方法,但是我觉得又不大合理,随后我就想到了 在里面读不到,外面可以读得到, 然后我就将$(this) 在setTimeout()外面赋给了一个变量。这样就迎刃而解了。哈哈,挺无语的问题吧,其实我在这里不是想说如何解决的,我是说这种思路,解决问题前先不要一味的去百度 谷歌
先要自己想想办法,真想不到,去找答案。
复制代码 代码如下:
$("ul li").hover(function(){
var oLi = $(this);
setTimeout(function(){
oLi.addClass("test");
alert("延迟了0.3s 我出现了!") //测试
},300)
})
您可能感兴趣的文章:
- js中的this关键字详解
- javascript中onclick(this)用法介绍
- javascript this用法小结
- JS中的this变量的使用介绍
- javascript中this的四种用法
- js报错 Object doesn''t support this property or method的原因分析
- 改变javascript函数内部this指针指向的三种方法
- 关于js里的this关键字的理解
- tomcat6下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法
- Javascript this关键字使用分析
- JS中改变this指向的方法(call和apply、bind)
- JavaScript中this详解
- JS函数this的用法实例分析
- 解决vue.js this.$router.push无效的问题
- vue项目中在外部js文件中直接调用vue实例的方法比如说this
- Javascript对象中关于setTimeout和setInterval的this介绍
- Javascript this指针
- JS中this的4种绑定规则详解
相关文章
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
这篇文章主要介绍了jQuery-1.9.1源码分析系列(十)事件系统之事件包装的相关资料,需要的朋友可以参考下2015-11-11轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
这篇文章主要帮助大家轻松学习jQuery插件EasyUI,重点是EasyUI创建菜单与按钮,按钮分为链接按钮、菜单按钮、分割按钮,对这方面感兴趣的小伙伴们可以参考一下2015-11-11jQuery中attr()和prop()在修改checked属性时的区别
使用语句$.attr('checked',true),将复选框的属性改为被选中,在chrome浏览器中第一次点击有效后面就不行了,IE8倒是没有问题2014-07-07使用jQuery设置disabled属性与移除disabled属性
Readonly只针对input和textarea有效,而disabled对于所有的表单元素都有效,下面为大家介绍下使用jQuery设置disabled属性2014-08-08jquery easyui datagrid实现增加,修改,删除方法总结
这篇文章主要介绍了jquery easyui datagrid实现增加,修改,删除方法,结合实例形式分析了jquery easyui datagrid结合asp.net实现数据的增删改等操作的步骤与相关技巧,需要的朋友可以参考下2016-05-05
最新评论