国产探花免费观看_亚洲丰满少妇自慰呻吟_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. ); 

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

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

圖片精選

主站蜘蛛池模板: 祥云县| 乌苏市| 乃东县| 舒兰市| 阿拉善右旗| 河源市| 沾化县| 镇江市| 万全县| 罗定市| 化德县| 和平县| 冀州市| 崇仁县| 白银市| 资溪县| 静宁县| 上虞市| 象州县| 噶尔县| 临漳县| 漳浦县| 广东省| 揭西县| 德兴市| 满洲里市| 瑞金市| 寿宁县| 双柏县| 南雄市| 嘉祥县| 平原县| 邯郸县| 张掖市| 长岭县| 皋兰县| 绍兴市| 绥德县| 惠安县| 伽师县| 阿拉善右旗|