成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

拋磚引玉 自定義jQuery擴展接口

開發 開發工具 前端
jQuery是一款很優秀的輕量級JavaScript框架,有其獨特的優點,本文將用一個簡單的例子演示jQuery的擴展接口的簡單示例,希望能對讀者起到拋磚引玉的作用。

jQuery是一款很優秀的輕量級JavaScript框架,有其獨特的優點。很多Web開發者都卻對其樂此不疲。因為在這個框架中,除了擁有豐富的客戶端處理功能、動畫功能外,更是提供了很自定義擴展接口,方便更多的開發者來擴展jQuery。

51CTO推薦專題: jQuery從入門到精通

  1. $.extend({  
  2.       max: function(a, b) {  
  3.           return a > b ? a : b;  
  4.       },  
  5.       min: function(a, b) {  
  6.           return a > b ? b : a;  
  7.       },  
  8.       avg: function(a, b) {  
  9.           return a / b;  
  10.       }  
  11. });  

該示例用以在jQuery中增加新函數,該函數是靜態函數。調用如下:

  1. jQuery.min(2,3); // => 2  
  2. jQuery.max(4,5); // => 5 


如果針對組件的功能擴展函數,同樣也是很簡單。比如,你想要擴展TextBox的功能,使到它在獲取焦點時,高亮顯示;失去焦點時,則取消高亮。當然,高亮的效果可以使用CSS來實現,因此,你可以用一個顏色的名稱作為參數進行調用。代碼如下:

  1. $.fn.hightlight = function(colorName) {  
  2.     this.mouseover(function() {  
  3.         $(this).css('background-color', colorName);   //this對是對組件自身的引用  
  4.     });  
  5.     this.mouseout(function() {  
  6.         $(this).css('background-color', '');  
  7.     });  

調用如下:

  1. $(function() {  
  2.     $('#test').hightlight('red');  
  3. });  

擴展jQuery的Json技巧

下面我們將分析在jQuery基礎上擴展了其處理Json字符串能力,偉大的jQuery將會更偉大用jQuery寫JavaScript非常高效,jQuery對Ajax的封裝也非常到位;使用jQuery一段時間后發現,jQuery在處理Json字符串方面功能不是很強,至少比prototype.js差遠了。

以前用習慣了擴展Jquery的Json,在進行Ajax開發時,處理json數據非常方便;而在jQuery中,只提供了一個簡單的jQuery.getJSON()方法,并未提供jQuery本身對json數據的轉換處理,將json字符串轉換為Javascript數據對象還比較容易利用eval()函數即可,但要將Javascript的數據類型轉換成json字符串就比較難了;剛開始不得同時使用prototype.js和jQuery。擴展Jquery的Json代碼:

#p#

  1. //擴展jQuery對json字符串的轉換    
  2. jQuery.extend({     
  3.  /** * @see 將json字符串轉換為對象   
  4.      * @param json字符串   
  5.      * @return 返回object,array,string等對象 */      
  6.  evalJSON: function(strJson)   
  7. {      return eval("(" + strJson + ")");      
  8. }    
  9. }); 

 

  1. jQuery.extend({      
  2. /** * @see 將javascript數據類型轉換為json字符串   
  3. * @param 待轉換對象,支持  
  4. object,  
  5. array,string,function,number,boolean,regexp   
  6. * @return 返回json字符串 */      
  7. toJSON: function(object) {        
  8. var type = typeof object;        
  9. if ('object' == type) {          
  10. if (Array == object.constructor) type = 'array';          
  11. else if (RegExp == object.constructor)   
  12. type = 'regexp';          
  13. else type = 'object';        
  14. }        
  15. switch (type) {        
  16. case 'undefined':        
  17. case 'unknown':          
  18. return;          
  19. break;        
  20. case 'function':        
  21. case 'boolean':        
  22. case 'regexp':          
  23. return object.toString();          
  24. break;   
  25. case 'number':          
  26. return isFinite(object) ?   
  27. object.toString() : 'null';          
  28. break;        
  29. case 'string':          
  30. return '"' + object.replace(/(\\|\")/g, "\\$1").replace(/\n|\r|\t/g, function()   
  31. {            
  32. var a = arguments[0];           
  33. return (a == '\n') ? '\\n': (a == '\r') ? '\\r': (a == '\t') ? '\\t': ""          
  34. }) + '"';          
  35. break;        
  36. case 'object':          
  37. if (object === null) return 'null';          
  38. var results = [];          
  39. for (var property in object) {            
  40. var value = jQuery.toJSON(object[property]);            
  41. if (value !== undefined) results.push(jQuery.toJSON(property) + ':' + value);          
  42. }          
  43. return '{' + results.join(',') + '}';          
  44. break;        
  45. case 'array':          
  46. var results = [];          
  47. for (var i = 0; i < object.length; i++) {            
  48. var value = jQuery.toJSON(object[i]);            
  49. if (value !== undefined) results.push(value);         
  50. }          
  51. return '[' + results.join(',') + ']';          
  52. break;        
  53. }      
  54. }    
  55. });  
  56. 示例:    
  57. var obj = {      
  58. name: "sean",      
  59. friend: ["fans", "bruce", "wawa"],      
  60. action: function() {      alert("gogogog")      
  61. },      
  62. boy: true,    age: 26,      
  63. reg: /\b([a-z]+) \1\b/gi,      
  64. child: {      name: "none",      age: -1    }  };   
  65.  var json = $.toJSON(obj);    
  66. var objx = $.evalJSON(json);  

【編輯推薦】

  1. 改變獲取對象方式 ***的jQuery選擇器
  2. 5種方法教你用jQuery重寫表單驗證
  3. 你應該學習jQuery的七大理由
  4. 即刻提升jQuery性能的十個技巧
  5. 12種jQuery性能優化方法解析
責任編輯:王曉東 來源: 豆豆網
相關推薦

2016-12-02 19:14:16

數據科學大數據

2009-06-26 15:56:26

2023-09-14 15:37:11

2013-09-12 16:23:44

iOS開發

2015-10-15 09:33:55

3Dtouch蘋果游戲開發

2010-08-12 09:45:33

jQuery自定義事件

2011-03-11 15:31:52

數據中心虛擬接入

2011-06-01 14:51:54

jQuery

2015-02-12 15:33:43

微信SDK

2012-09-06 10:07:26

jQuery

2012-07-24 15:03:19

OpenStack架構

2009-05-18 10:57:35

.NETString特性

2018-03-26 12:58:52

數據庫OracleMySQL

2015-02-12 15:38:26

微信SDK

2022-07-20 15:10:38

Docker大數據平臺

2010-10-26 09:23:03

Web Service

2009-10-09 14:24:27

2010-07-23 16:03:36

SQL Server存

2009-07-01 09:41:00

無線路由器固件番茄固件

2016-10-14 13:10:35

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产免费 | 天天拍天天插 | 亚洲人在线观看视频 | 亚洲国产精品久久久久婷婷老年 | 欧美精品久久久久久 | 一级一级毛片免费看 | 精品久久久久久久久久久久久久 | 亚洲国产精久久久久久久 | 天堂资源| 亚洲国产精品成人久久久 | 99pao成人国产永久免费视频 | 欧美日韩精品中文字幕 | 国产成人精品免高潮在线观看 | 日日操夜夜干 | 国产精品成人国产乱 | 中文在线a在线 | 亚洲综合在线视频 | 亚洲精品美女 | 黑人一级黄色大片 | 精品国产18久久久久久二百 | 国产精品久久久久久久久久久免费看 | 中文字幕在线免费观看 | 国产极品91 | 美女黄网站 | 91精品久久久久久久久久入口 | 狠狠影院 | 成人免费视频 | 欧美1区2区 | 日韩欧美综合 | 天天艹逼网 | 国产激情91久久精品导航 | 免费在线国产视频 | 国产成人精品一区二区三区视频 | 日韩精品一区中文字幕 | 国产亚洲精品久久久优势 | 欧美日韩国产三级 | 四虎av电影 | 日韩在线免费观看视频 | 国产成人精品综合 | 能看的av网站 | 91精品久久久久久久久中文字幕 |