位置 > 首页 > 图解小知识

利用setTimeout()计时器延迟方法,JS事件效果不起作用的原因及解决办法

 jquery下的setTimeout执行alert没问题,执行某个p消失就不行了?

  1. $('.number_dv li').hover(function()  
  2.   setTimeout(function(){  
  3.     $(this).children('.zhegai_').stop().css("display","block");  
  4.     alert('1');  
  5.   },2000);  
  6. }) 

错误原因:

由于此时的$(this)在setTimeout()方法里不再归属于hover事件的当前DOM节点,因此无法实现hover事件的DOM的操作!

调试结果:

JS事件console.log()调试结果
JS事件console.log()调试结果

通过调试结果可以看到,此时的DOM节点($(this))不是当前的li标签!

解决方法:

将$(this)赋值给一个变量,传递到setTimeout()方法里,即可实现当前DOM的操作!

  1. $('.number_dv li').hover(function() 
  2.   var _self = $(this); 
  3.   setTimeout(function(){ 
  4.     _self.children('.zhegai_').stop().css("display","block"); 
  5.     alert('1'); 
  6.   },2000); 
  7. }) 

 调试结果:

console.log() JS事件调试结果2
console.log() JS事件调试结果2

原创文章转载请注明出处!原文链接:https://www.exp99.com/fangan/f2e/qianduanfangan_89.html


本站声明:本站部分文章来自网络,由用户上传分享,如若内容侵犯了您的合法权益,可联系我们进行处理。文章仅供大家学习与参考,不**本站立场。

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

相关图片
相关单图
热门图文标签
热门图片标签
热门词条推荐

精美图文推荐

上一篇 下一篇
作者信息
【霜】露雪玲
(0)赞
2022-03-31 03:21:09
相关专辑
返回首页