成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

不要過度依賴JQuery(三)

pekonchan / 2353人閱讀

摘要:在這里先拜個年,祝大家新年快樂,闔家幸福,步步高升回歸正題,在不要過度依賴一和不要過度依賴二兩篇文章中已經(jīng)列舉了大量的使用原生替代的例子,在本文中將繼續(xù)列舉表單獲取焦點失去焦點實時監(jiān)控判斷類型判斷類型判斷是否為一個函數(shù)判斷是否為數(shù)字判斷是

在這里先拜個年,祝大家新年快樂,闔家幸福,步步高升!

回歸正題,在不要過度依賴JQuery(一)和不要過度依賴JQuery(二)兩篇文章中已經(jīng)列舉了大量的使用原生JavaScript替代JQuery的例子,在本文中將繼續(xù)列舉!

1、表單

獲取焦點

$("#test").focus(); ?
$("#test").focus(function(){});

var t = document.getElementById("test");
function addEvent(dom, type, handle, capture) { ? ? ??
? if(dom.addEventListener) { ? ? ??
? ? dom.addEventListener(type, handle, capture); ? ? ? ?
? } else if(dom.attachEvent) { ? ? ??
? ? dom.attachEvent("on" + type, handle); ? ? ??
? }?
};?
function focus(elem, fn) {
? if(fn && typeof fn === "function") {
? ? addEvent(elem, "focus", fn);
? } else {
? ? elem.focus();
? }
}

focus(t, function(){});

失去焦點

$("#test").blur();
$("#test").blur(function(){});
? ?
function blur(elem, fn) { ? ?
? if(fn && typeof fn === "function") { ? ?
? ? addEvent(elem, "blur", fn); ? ?
? } else { ? ?
? ? elem.blur(); ? ?
? } ??
} ? ?

blur(t, function(){});

實時監(jiān)控

$("#test").on("input propertychange", fn);

function inputChange(dom, fn, capture) { ??
? capture = capture || false; ??
? addEvent(dom, "input", fn, capture);
? addEvent(dom, "propertychange", fn, capture); ??
}

inputChange(t, function(){});

2、判斷類型

判斷類型

$.type(obj);

Object.prototype.toString.call(obj).replace(/^[object (.+)]$/, "$1").toLowerCase();

判斷是否為一個函數(shù)

$.isFunction(fn)

function isFunction(fn){
? return typeof fn === "function";
}

判斷是否為數(shù)字

$.isNumeric(num);

function isNumber(num) {
? var type = typeof num;
? return ( type === "number" || type === "string") &&?
? ? ? !isNaN( num - parseFloat( num ) );
}

判斷是否為數(shù)組

$.isArray(obj);

function isArray(obj) {
? if( Array.isArray ) {
? ? return Array.isArray(obj);
? } else {
? ? return Object.prototype.toString.call(obj) === "[object Array]";
? }
}

3、時間

獲取當前時間

$.now()

new Date().getTime();

/* 更簡單 */
+new Date();

4、改變上下文(this)

$.proxy(fn, context);

fn.bind(context);

5、空函數(shù)

創(chuàng)建一個空函數(shù)

var fn = $.noop();

var fn = function() {}

6、數(shù)組

合并數(shù)組

$.merge(arr1, arr2)

function (arr1, arr2) {
? return arr1.concat(arr2);
}

類數(shù)組對象轉(zhuǎn)換成數(shù)組

var divs = document.querySelectorAll("div");

var arr = $.makeArray(divs);

var arr = Array.prototype.slice.call(divs);

// ES6?
var arr = Array.from(divs)

7、Iframe

獲取iframe的document

$("#iframe").contents();

var iframe = document.getElementById("iframe");
iframe.contentDocument;

8、元素包含關(guān)系

檢查一個DOM元素是另一個DOM元素的后代

$.contains(parent, child);

function contains(root, el) {?
? /* Chrome / Firefox */ ?
? if (root.compareDocumentPosition) { ?
? ? return root === el || !!(root.compareDocumentPosition(el) & 16); ?
? }?
? /* IE */
? if (root.contains && el.nodeType === 1){ ??
? ? return root.contains(el) && root !== el; ??
? } ??
? while ((el = el.parentNode)) { ?
? ? if (el === root) {?return true; } ?
? ? return false; ??
? }
}

9、scroll

設(shè)置/獲取window滾動位置

/*獲取*/
$(window).scrollTop();

(document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop

/*設(shè)置*/
$(window).scrollTop(10);

(document.documentElement && document.documentElement.scrollTop = 10) || document.body.scrollTop = 10;

設(shè)置某個元素滾動位置

$("#test").scrollTop(10);

var t = document.getElementById("test");

t.scrollTop = 10;

注意:別加單位!

10、節(jié)點

獲取元素的最近的祖先定位(position非static)元素

$("#test").offsetParent();

var t = document.getElementById("test");
t.offsetParent;

到這里,《不要過度依賴JQuery》系列就告一段落了!

原文鏈接:不要過度依賴JQuery(三)

如有錯誤或建議,歡迎在下方評論區(qū)留言!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/81355.html

相關(guān)文章

  • 不要過度依賴JQuery

    摘要:在這里先拜個年,祝大家新年快樂,闔家幸福,步步高升回歸正題,在不要過度依賴一和不要過度依賴二兩篇文章中已經(jīng)列舉了大量的使用原生替代的例子,在本文中將繼續(xù)列舉表單獲取焦點失去焦點實時監(jiān)控判斷類型判斷類型判斷是否為一個函數(shù)判斷是否為數(shù)字判斷是 在這里先拜個年,祝大家新年快樂,闔家幸福,步步高升! 回歸正題,在不要過度依賴JQuery(一)和不要過度依賴JQuery(二)兩篇文章中已經(jīng)列舉了...

    vvpvvp 評論0 收藏0
  • H5 知識點 - 收藏集 - 掘金

    摘要:目錄不要過度依賴一前端掘金毫無疑問,是一款非常優(yōu)秀的庫,它讓我們開發(fā)項目變得更加便捷容易。但是作為一個前端工作者,我們肯定也希望在我們的網(wǎng)頁里也能看到這么酷分鐘搞定常用基礎(chǔ)知識前端掘金基礎(chǔ)智商劃重點在實際開發(fā)中,已經(jīng)非常普及了。 跨域解決方案總結(jié) - 前端 - 掘金為什么需要跨域? 就得先知道同源策略. 同源策略 同源策略是為了保證數(shù)據(jù)的安全性,一個域的腳本不能去操作另外一個域的腳本的...

    frontoldman 評論0 收藏0
  • 不要過度依賴JQuery(二)

    摘要:為什么說不要過度依賴呢從項目方面來講,一些項目在開發(fā)中實際用到內(nèi)置功能不多,這樣會造成項目臃腫另一方面,目前的主流已經(jīng)傾向于原生開發(fā)。而在之前一篇不要過度依賴一一文中已經(jīng)介紹了部分使用原生實現(xiàn)功能的代碼,這一章將繼續(xù)列舉。 為什么說不要過度依賴JQuery呢?從項目方面來講,一些項目在開發(fā)中實際用到JQuery內(nèi)置功能不多,這樣會造成項目臃腫;另一方面,目前的主流已經(jīng)傾向于原生開發(fā)。 ...

    Labradors 評論0 收藏0

發(fā)表評論

0條評論

pekonchan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<