封裝一個自己的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
- 如何優雅的封裝一個DOM事件庫封裝事件
- 用原生js封裝一個ajax請求方法JS封裝
- LDialog基於DialogFragment封裝的庫,也許是一個Nice的庫Fragment封裝
- 基於Vue.js封裝一個簡單的select元件Vue.js封裝元件
- 自己封裝的一些業務小元件封裝元件
- 封裝一個通用的PopupWindow封裝
- aardio封裝庫) 微軟開源的js引擎(ChakraCore)封裝微軟JS
- 原生JS 一定要學會自己封裝函式,不然還怎麼‘原生’?JS封裝函式
- 公司需求系列:js封裝一個移動端modal框JS封裝
- JS — websocket封裝JSWeb封裝
- JS功能封裝JS封裝
- 一個簡單的 Amqp 封裝MQ封裝
- vue通俗易懂封裝一個樹元件?(複製貼上就是自己的了?)Vue封裝元件
- JS21. 使用原生JS封裝一個公共的Alert外掛(HTML5: Shadow Dom)JS封裝HTML
- WPF中封裝一個自己的MessageBox封裝
- 封裝一個postMessage庫,進行iframe跨域互動封裝跨域
- Android架構系列-封裝自己的okhttpAndroid架構封裝HTTP
- ajax原生js封裝JS封裝
- 原生js封裝AjaxJS封裝
- Node.js 如何優雅的封裝一個實用函式的 npm 包Node.js封裝函式NPM
- 一個簡單vue.config.js配置和axios簡單封裝VueJSiOS封裝
- 使用ts封裝一個ajax封裝
- 用promise封裝一個ajaxPromise封裝
- JS盒子模型、圖片懶載入、DOM庫封裝 — 1、JS盒子模型及常用操作樣式方法的封裝...JS模型封裝
- 封裝一個簡單的日曆元件封裝元件
- 8.7 一個模組的封裝過程封裝
- Android Room封裝成一個類似Redis的快取資料庫的效果AndroidOOM封裝Redis快取資料庫
- JS物件之封裝(二)JS物件封裝
- Python 的 Geth 封裝庫 PyGethPython封裝
- java自己封裝檔案處理Java封裝
- 【JavaScript框架封裝】實現一個類似於JQuery的動畫框架的封裝JavaScript框架封裝jQuery動畫
- 封裝了一個? URL地址解析封裝
- 封裝UI元件庫封裝UI元件
- JS棧結構的簡單封裝JS封裝
- 那些年我封裝的 JS 函式封裝JS函式
- 如何根據業務封裝自己的功能元件封裝元件