国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

setTimeout內不支持jquery的選擇器的解決方案

2024-05-06 16:18:56
字體:
來源:轉載
供稿:網友

在JS中無論是setTimeout還是setInterval,在使用函數名作為調用句柄時都不能帶參數,而在許多場合必須要帶參數,這就需要想方法解決。

今天在寫一個js延時事件的時候發現在setTimeout這個方法里面使用jquery的$(this)竟然不起作用,各種測試,最后得出結論是setTimeout內不支持jquery的選擇器。于是請教了一下QQ上做jquery開發的高手,馬上就把這問題解決了,在這里記錄一下。

下面是作者做延時處理時的js代碼:

 

 
  1. $('.dl_select dt').hover(  
  2. function(){  
  3. clearTimeout(t3);  
  4. $(this).siblings('dd').css({'display':'block','cursor':'pointer'});  
  5. },  
  6. function(){  
  7. t2=setTimeout(function(){$(this).siblings('dd').css({'display':'none'});},300);  
  8. }  
  9. );  
  10. $('.dl_select dd').hover(  
  11. function(){  
  12. clearTimeout(t2);  
  13. $(this).css({'display':'block','cursor':'pointer'});  
  14. },  
  15. function(){  
  16. t3=setTimeout(function(){$(this).css({'display':'none'});},200);  
  17. }  
  18. );  

注意以上代碼中得setTimeout里的代碼,如果這些代碼不在這個方法里面,本身是沒有問題的,但是如上這種情況是會報錯的。至于原因,作者現在也沒有弄明白。經網友點化改成如下就沒事兒了,方法很巧妙。如下是正確的代碼:

 

 
  1. $('.dl_select dt').hover(  
  2. function(){  
  3. clearTimeout(t3);  
  4. $(this).siblings('dd').css({'display':'block','cursor':'pointer'});  
  5. },  
  6. function(){  
  7. var $this=$(this).siblings('dd');  
  8. t2=setTimeout(function(){$this.css({'display':'none'});},300);  
  9. }  
  10. );  
  11. $('.dl_select dd').hover(  
  12. function(){  
  13. clearTimeout(t2);  
  14. $(this).css({'display':'block','cursor':'pointer'});  
  15. },  
  16. function(){  
  17. var $this=$(this);  
  18. t3=setTimeout(function(){$this.css({'display':'none'});},200);  
  19. }  
  20. ); 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 辉县市| 蒙城县| 乐亭县| 永州市| 镇康县| 额尔古纳市| 皋兰县| 衡山县| 临沧市| 潢川县| 黄浦区| 安远县| 星子县| 三原县| 莱芜市| 象州县| 平果县| 通州区| 扎赉特旗| 鸡泽县| 公主岭市| 韶山市| 乐亭县| 台江县| 长垣县| 柞水县| SHOW| 莱阳市| 广宁县| 马边| 清水河县| 颍上县| 客服| 宣汉县| 蒙自县| 屏南县| 博客| 诸暨市| 大方县| 罗城| 湖南省|