摘要:轉(zhuǎn)來學習一下中鮮為人知的的幾個方法近些年來仍舊是開發(fā)中最受歡迎的類庫,雖然大家褒貶不一,但是仍舊不失為一款最流行的,在今天這篇文章中,我們將介紹幾個的相關(guān)方法,無論你是入門級極客或者骨灰級極客,可能都會忽略這些方法的使用。
轉(zhuǎn)來學習一下 jQuery中鮮為人知的的幾個方法
jQuery近些年來仍舊是web開發(fā)中最受歡迎的類庫,雖然大家褒貶不一,但是仍舊不失為一款最流行的Javascript,在今天這篇文章中,我們將介紹幾個jQuery的相關(guān)方法,無論你是入門級極客或者骨灰級極客,可能都會忽略這些方法的使用。希望大家會覺得有幫助!
在事件中return false可能大家在編寫事件相關(guān)代碼的時候,有時候會使用return false語句,代碼如下:
$("a").click(function() { $(".gbtags").toggle(); return false; }
以上代碼中,我們點擊a元素,如果不return false,會觸發(fā)對應(yīng)a元素的鏈接,導致頁面的地址變化。
而jQuery有標準的方法來幫助你實現(xiàn)類似上面的功能,代碼如下:
if ( ret !== undefined ) { if ( (event.result = ret) === false ) { event.preventDefault(); event.stopPropagation(); } }
那么這兩個實現(xiàn)方式有什么不同呢? 我們可以看看jQuery的源代碼,如下:
if ( ret !== undefined ) { if ( (event.result = ret) === false ) { event.preventDefault(); event.stopPropagation(); } }
大家看明白了嗎?最簡單理解,如下:
return false;
等于
event.preventDefault(); event.stopPropagation();
在事件處理中,如果你直接返回false,那么將會同時阻止元素缺省行為并且終止元素事件的Bubbling,即事件同時阻止當前元素父層元素,即:event.stopPropagation(); 所實現(xiàn)效果。
$.type來實現(xiàn)類型判斷也許大家都已經(jīng)習慣了使用javascript的本地方法:typeof 來判斷類型,但是在jQuery中提供了一個更好的方法幫助你判斷類型,那就是$.type。
那么究竟有什么區(qū)別呢? 我們先看看這個gbdebug:
http://www.gbtags.com/gb/debug/3361dbff-41c0-465d-81e3-1ef6cbb275e1.htm
運行以上代碼,能看到如下輸出結(jié)果:
// 返回object result(typeof null); // 返回object result(typeof [0, 1, 2]); // 返回object result(typeof new Number(3)); // 返回null result($.type(null)); // 返回array result($.type([0, 1, 2])); // 返回number result($.type(new Number(3)));
大家看出來什么區(qū)別了嗎? 使用$.type能夠返回更準確的對象類型,而typeof則返回object,所以如果你使用jQuery來編碼的時候,使用$.type 將更加方便。
使用attr()來實現(xiàn)removeAttr()的功能可能大家習慣了使用attr()來添加元素屬性,而使用removeAttr() 來刪除元素屬性。
但是其實使用attr()也能執(zhí)行刪除的效果,為什么呢?請看看如下jQuery源代碼:
attr: function( elem, name, value ) { ... if ( value !== undefined ) { if ( value === null ) { jQuery.removeAttr( elem, name ); ... }
從上面jQuery的源代碼中可以看出來,如果你設(shè)置value為null的話,其實它就可以實現(xiàn)removeAttr的方法功能。
http://www.gbtags.com/gb/debug/269c89e1-b22f-40f9-8d26-8d995e999d29.htm
因此,我們可以如下方式來運行判斷是否刪除屬性:
$("a").attr("title", condition ? value : null);
否則你需要使用如下:
condition ? $("a").attr("title", value) : $("a").removeAttr("title");
是不是稍微簡單一些?
$.makeArray來創(chuàng)建數(shù)組有些時候我們需要將類似數(shù)組的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化成為一個真實的數(shù)組,然后調(diào)用相關(guān)數(shù)組方法,例如reverse,代碼如下:
// 返回 NodeList var elems = document.getElementsByTagName( "li" ); // 轉(zhuǎn)化為Array var arr = jQuery.makeArray( elems ); // 調(diào)用數(shù)組方法反向排序 arr.reverse(); $( arr ).appendTo( document.body );
相關(guān)gbdebug:
http://www.gbtags.com/gb/debug/75d28491-aa13-4868-aa95-10b079337b82.htm
是不是非常簡單?如果不使用$.makeArray,那么你需要自己處理Javascript來實現(xiàn)類似的功能,會非常麻煩
總結(jié)以上就是幾個大家可能在jQuery開發(fā)中容易忽略的幾個實用方法,或者你也有自己的一些不錯的方法,請大家不吝分享!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/85541.html
摘要:干想了半天,認為可能還是本身的寫法問題。對象提供了一種通過定義函數(shù)來獲取或設(shè)置特定值的方法。簡單來說,給我們暴露了一個鉤子,我們可以自己定義方法比如,來實現(xiàn)針對某個屬性的特定行為。 寫在最前 本次分享一下在一次jQuery賦值樣式失效的結(jié)果中來分析背后原因的過程。在翻jQuery源碼的過程中,感覺真是還不能說自己只是會用jQuery,我好像連會用都達不到(逃 歡迎關(guān)注我的博客,不定期更...
摘要:干想了半天,認為可能還是本身的寫法問題。對象提供了一種通過定義函數(shù)來獲取或設(shè)置特定值的方法。簡單來說,給我們暴露了一個鉤子,我們可以自己定義方法比如,來實現(xiàn)針對某個屬性的特定行為。 寫在最前 本次分享一下在一次jQuery賦值樣式失效的結(jié)果中來分析背后原因的過程。在翻jQuery源碼的過程中,感覺真是還不能說自己只是會用jQuery,我好像連會用都達不到(逃 歡迎關(guān)注我的博客,不定期更...
摘要:個高級多線程面試題及回答后端掘金在任何面試當中多線程和并發(fā)方面的問題都是必不可少的一部分。默認為提供了年杭州面試經(jīng)歷掘金想換個環(huán)境試試覺得做的不是自己想要的。源碼網(wǎng)站安居客項目架構(gòu)演進掘金本文已授權(quán)微信公眾號獨家發(fā)布。 15 個高級 Java 多線程面試題及回答 - 后端 - 掘金在任何Java面試當中多線程和并發(fā)方面的問題都是必不可少的一部分。如果你想獲得任何股票投資銀行的前臺資訊職...
閱讀 2495·2021-11-24 10:29
閱讀 2634·2021-09-24 09:48
閱讀 5737·2021-09-22 15:56
閱讀 3152·2021-09-06 15:00
閱讀 2667·2019-08-30 15:54
閱讀 740·2019-08-30 13:48
閱讀 2894·2019-08-30 11:17
閱讀 3417·2019-08-29 11:20