封裝一個自己的js庫
仿照jQuery封裝一個自己的js庫
接下來,我講封裝一個仿jQuery的庫,主要包含jQuery中繫結,css,等方法,我講它定義為 "HQuery"
$符號的封裝
jQuery中的 $ 符號意味著什麼?
先思考一下jQuery庫中alert(typeof $)的結果,它是一個物件,也是一個函式
所以美元符$字面上是jQuery,其實就是一個jq物件,裡面可以接受函式,字串,還要一種是物件(比如this)
給自己的Hquery填加$符號:
function $(arg) { return new Hquery(arg) }
Hquery是基於物件導向實現的,所以我們需要先寫建構函式,為了方便遍歷和其他方法的操作,所有內容返回到一個陣列中,這個陣列衣服於Hquery物件存在,之後將為這個Hquery物件屬性新增方法
function Hquery(arg){ //引數是變體變數 this.elements = [] // 選擇器選擇的元素放到這個陣列中}
選擇器的封裝:
我們使用Hquery操作DOM等實現一系列的功能,選擇器是必不可少的,所有我們首先封裝好選擇器,這樣就可以能省去document.getElementsByClass等等麻煩的操作
// 透過class選擇元素 因為class可以有多個,所以我們需要push一下function getByClass(oParent, sClass) { var aClass = []; var elems = oParent.getElementsByTagName('*') for (var i=0; i封裝事件:
function bindEvent(obj, event, fn) { if (obj.addEventListener){ //在標準瀏覽器下 obj.addEventListener(event, fn, false) } else { // IE瀏覽器下 obj.attachEvents('on' + event, fn) } }// click方法Hquery.prototype.click=function (fn) { // for (var i=0;ihide和show也是比較常用的方法:
// hideHquery.prototype.hide = function () { for (var i=0;ieq方法
// eqHquery.prototype.eq = function (index) { //返回出來的是元素物件,原生下面沒有css(),肯定沒有,所以此時需要換為$下的物件 return $(this.elements[index]) }其他的方法,我就不一一介紹了,下面直接給大家上一個多種方法封裝好的,大家k'y
作者:周瑾ruiqi
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1343/viewspace-2813639/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 淺析jQuery原理並仿寫封裝一個自己的庫jQuery封裝
- 分享個自己封裝的限流trait封裝AI
- 從連結串列出發封裝一個自己的工具封裝
- 我自己的Javascript 庫,封裝了一些常用函式JavaScript封裝函式
- 如何優雅的封裝一個DOM事件庫封裝事件
- 自己封裝的一些業務小元件封裝元件
- 用原生js封裝一個ajax請求方法JS封裝
- 封裝一個通用的PopupWindow封裝
- 自己封裝雙快取管理框架 Android 庫封裝快取框架Android
- 分享自己寫的一個 Python 的 JSON 轉 Model 庫PythonJSON
- 自己動手封裝js工具類(JS中定義類的幾種方式)封裝JS
- 一個簡單的 Amqp 封裝MQ封裝
- 原生JS 一定要學會自己封裝函式,不然還怎麼‘原生’?JS封裝函式
- 基於Vue.js封裝一個簡單的select元件Vue.js封裝元件
- 公司需求系列:js封裝一個移動端modal框JS封裝
- vue通俗易懂封裝一個樹元件?(複製貼上就是自己的了?)Vue封裝元件
- 自己封裝的一個 servlet 和 applet 序列化通訊的好例子封裝ServletAPP
- LDialog基於DialogFragment封裝的庫,也許是一個Nice的庫Fragment封裝
- aardio封裝庫) 微軟開源的js引擎(ChakraCore)封裝微軟JS
- jsonp的promise封裝JSONPromise封裝
- 8.7 一個模組的封裝過程封裝
- Android 封裝一個通用的PopupWindowAndroid封裝
- JS功能封裝JS封裝
- JS 封裝類JS封裝
- JS — websocket封裝JSWeb封裝
- 基於workerman-jsonrpc二次封裝的一個packageJSONRPC封裝Package
- 用promise封裝一個ajaxPromise封裝
- 使用ts封裝一個ajax封裝
- 如何建立一個自己的 Composer 庫
- jsp呼叫javabean封裝資料庫的問題,急!JSJavaBean封裝資料庫
- jsp呼叫javabean,javabean封裝資料庫的問題JSJavaBean封裝資料庫
- 一個可用與資料庫SQL封裝的指令碼語言--TCL資料庫SQL封裝指令碼
- 【JavaScript框架封裝】實現一個類似於JQuery的動畫框架的封裝JavaScript框架封裝jQuery動畫
- 編寫自己的程式碼庫(javascript常用例項的實現與封裝)JavaScript封裝
- 封裝一個postMessage庫,進行iframe跨域互動封裝跨域
- Android架構系列-封裝自己的okhttpAndroid架構封裝HTTP
- 如何根據業務封裝自己的功能元件封裝元件
- Arduino 封裝庫UI封裝