摘要:不論怎樣嵌套,定位父級是誰,都是到達頁面邊緣的距離。原生的相對于定位的祖先節點的距離。后來添加的照樣有事件,這是通過事件委托實現的。如果用普通寫法,新添加的是沒有事件的。一旦用時,一定要是用的。
元素的尺寸
width() height() ★★★★★
innerWidth() innerHeight() ★★★★★
outerWidth() outerHeight() ★★★★★
參數的作用
與原生JS的區別
元素尺寸的獲取元素尺寸的設置 與原生JS獲取尺寸的區別 div
$(function(){ alert($("#div1").get(0).offsetWidth); //0 原生的JS是獲取不到隱藏元素的尺寸的 alert($("#div1").width()); //100 JQ是可以獲取隱藏元素的尺寸的 })實戰小技巧
可視區的尺寸
頁面的尺寸
滾動距離可視區的尺寸 div
scrollTop() ★★★★★scr
ollLeft() ★
滾動距離
元素距離可視區的尺寸 div
offset() ★★★★★
left top
position() ★★★
left top
不認margin值
position到達頁面的距離:offset()
alert($("#div2").position().left); //0
#div2 {width: 100px; height: 100px; position: relative; left: 50px; background: yellow;}實戰小技巧
利用計算原理,得到相應值
offsetParent() ★
例子:懶加載頁面中的圖片
計算出到有定位的祖先節點的距離
懶加載圖片
JQ的事件
on() ★★★★★
off() ★★★★★
JQ中都是綁定的形式
支持多事件寫法
click()寫法,也是采用off()取消
用off()取消事件jQuery中的事件 aaaaaa
Event對象jQuery中的事件 aaaaaa
常用性★★★★★
pageX, pageY 與cient的區別
which
target
stopPropagation()
preventDefault()
return false
which鍵盤鍵值jQuery中的event事件對象 aaaaaa
ev.target事件源jQuery中的event事件對象 aaaaaa
ev.stopPropagation() 阻止冒泡jQuery中的event事件對象 aaaaaa
ev.preventDefault() 阻止默認事件jQuery中的event事件對象 aaaaaa
return false 既阻止默認事件又阻止冒泡jQuery中的event事件對象 aaaaaa
JQ實戰小技巧jQuery中的event事件對象 aaaaaa
多次添加on的處理方式
例子:拖拽效果
用jQuery實現拖拽效果多次添加on的處理方式 aaaaaaspan
事件委托 delegate() ★★★★★用JQ實現拖拽 div
委托的好處
ev.delegateTarget
事件委托
取消委托
trigger()比click()形式更強大
事件的命名空間
例子:主動觸發的添加內容
事件的命名空間
事件的命名空間2事件的命名空間 div
工具方法事件的命名空間 div
教程網站
$.merge()$.type()
★★★★★比原生typeof更強大
$.type() div
$.isFunction() ★★★
$.isNumeric() ★★★
$.isArray() ★★★
$.isWindow() ★★★
$.isEmptyObject() ★★★
$.isPlainObject() ★★★
$.extend() ★★★★★對象繼承操作
深拷貝操作
$.proxy() ★★★$.extend() 對象的拷貝
兩處傳參的的區別
$.proxy()改變this指向的用法
$.proxy改變this指向
用$.proxy()傳參的用法
$.proxy改變this指向
JQ實戰小技巧$.proxy改變this指向
利用This改指向,更加方便
$.proxy改變this指向
本課練習:登錄彈窗效果
$.map()$.map方法也是用來遍歷數組和對象,但是會返回一個新對象
$.grep()
$.unique()
$.inArray() divdivdiv
$.makeArray() divdivdiv
$.trim() divdivdiv
用于移除字符串頭部和尾部多余的空格
$.trim(" Hello ") // Helloajax擴展 $.param() ★★★
serializeArray() divdivdiv
常用度★★★
load()
常用度 ★篩選的功能
$.getScript()
常用度★
$.getJSON
常用度★
JSONP,不受同源影響
建議直接使用問號
$(function(){ // $.getJson() 動態請求json或JsonP //直接用$.getJSON,我們就不需要再通過設置dataType: json了 $.getJSON("data.php", function(data){ console.log(data); }); //data.php返給我們的是一個json格式 })jsonp的形式
$.getJSON("data.php?callback=?", function(data){ //data.php返回的是jsonp的形式,我們就可以后面添上callback=? 注意其中callback是key值,而問號?是value值。一旦用getJSON時,一定要是用callback=?的。如果給callback指定了名稱,那么返回的是字符串形式,并不是json形式,在getJSON里面就解析不了,所以就只能走error。所以在$.getJSON()里面給callback命名是沒有意義的,一定要是用?才可以自動解析 console.log(data); }).error(function(err){ console.log(err); }); $.ajax({ //在使用ajax的時候,可以給callback自定義名稱,例如下面定義了“show” url:"data.php?callback=show", success: function(data){ //返回的數據就是一個類似"show({name: "hello"})"的字符串,然后再后續處理進行使用 } }) //另外如果在$.ajax()中設置了datatype為"jsonp",那么在url的地方是不需要加callback的,因為它會自動添加好$.ajaxSetup()
常用度★
默認配置
$(function(){ //如果有很多ajax,那么可以利用$.ajaxSetup()來進行默認設置 $.ajaxSetup({ type: "POST" //那么所有的ajax傳輸類型都改為post了 }); })
全局事件
加到document上,參數的意義
$.ajaxStart() ★
$.ajaxStop() ★
$.ajaxSuccess() ★
$.ajaxError() ★
$.ajaxComplete() ★
$.ajaxSend() ★
屬性 ★
Global, Context
JSONP, jsonpCallback
Cache, Timeout
processData
contentType
ajax參考資料
常用度★
防止庫之間沖突
$.each()
常用度★★★
遍歷
后退鏈式操作 end() addBack()
常用度★
JQ中的隊列 queue().dequeue() divspan
概念與參數意義
隊列名稱
$(function(){ //$.queue() 三個參數:隊列添加到哪個元素身上;隊列的名字;第三個參數是一個函數 //$.dequeue() 兩個參數:元素和隊列名字 //JQ中的隊列,存儲的都是函數 //JQ的隊列,當進行出隊的操作的時候,會自動執行相應的函數 function a(){ alert(1); } function b(){ alert(2); } function c(){ alert(3); } $.queue(document, "myeve", a); $.queue(document, "myeve", b); $.queue(document, "myeve", c); $.dequeue(document, "myeve"); //彈1 $.dequeue(document, "myeve"); //彈2 $.dequeue(document, "myeve"); //彈3 })
queue() dequeue()
源碼分析運動隊列
默認隊列名fx
隊列的具體應用基本使用
基本使用
div
JQ中的回調對象 $.Callbacks() div
基本概念與用法
add
remove
fire
應用場景
四大參數
once
memory
unique
stopOnFalse
$(function(){ function a(){ alert(1); } function b(){ alert(2); } function c(){ alert(3); } var cb = $.Callbacks(); //回調對象 cb.add(a); //a添加到回調對象的集合里面 cb.fire(); //fire就是觸發 彈出1 cb.add(b); cb.fire(); //彈出1和2 cb.add(c); cb.remove(b); cb.fire(); //彈出1和3 })
用回調對象來解決作用域的問題
$(function(){ var cb = $.Callbacks(); function a(){ alert(1); } (function(){ function b(){ alert(2); } cb.add(a); cb.add(b); })(); // a(); //彈1 //b(); //b這個函數是找不到的,因為作用域里面沒它 cb.fire(); //彈1、2 })once
$(function(){ function a(){ alert(1); } function b(){ alert(2); } function c(){ alert(3); } //參數 once:只能觸發一次 var cb = $.Callbacks("once"); cb.add(a); cb.add(b); cb.fire(); //彈1、2 cb.fire(); //因為添加了參數once,所以前面觸發過一次之后,這里不再觸發 })memory
$(function(){ function a(){ alert(1); } function b(){ alert(2); } function c(){ alert(3); } //參數 memory:不管前后添加的都一起觸發 var cb = $.Callbacks("memory"); cb.add(a); cb.add(b); cb.fire(); //彈1、2、3,因為參數memory,讓觸發時不管前面后面add的都觸發 cb.add(c); })unique
$(function(){ function a(){ alert(1); } function b(){ alert(2); } function c(){ alert(3); } //參數 unique:去重功能 var cb = $.Callbacks("unique"); cb.add(a); cb.add(a); cb.add(a); cb.add(b); cb.fire(); //彈1、2,而不是彈1,1,1,2 })stopOnFalse
$(function(){ function a(){ alert(1); } function b(){ alert(2); return false; } function c(){ alert(3); } //參數 unique:去重功能 var cb = $.Callbacks("stopOnFalse"); cb.add(a); cb.add(a); cb.add(b); cb.add(c); cb.fire(); //彈1,1,2 不談3,因為在b里面碰到了false就不繼續執行后面的函數c了 })參數的組合使用
$(function(){ function a(){ alert(1); } function b(){ alert(2); return false; } function c(){ alert(3); } //回調對象的參數可以組合使用 var cb = $.Callbacks("once memory"); cb.add(a); cb.add(a); cb.add(b); cb.fire(); //彈1,1,2,3 cb.add(c); cb.fire(); //什么也不彈 })JQ中的延遲對象
常用度★★★
$.Deferred()
基本概念與用法
與Callbacks()對比學習
應用場景
狀態的定義
狀態的映射 resolve, done reject, fail
ajax中的應用 $.when()
利用狀態的應用
JQ插件編寫 ★★★$.fn.extend() this指向
$.extend()
編寫插件基本格式
分析jQuery.e-calendar
配置參數
方法
自定義事件
實例:編寫選項卡插件
$.extend()與$.fn.extend() 擴展工具方法$(function(){ //$.trim是去掉左右空格,現在擴展一個只去左邊空格的方法 $.extend({ leftTrim: function(str){ //this : 工具方法中 this與$等價 return str.replace(/^s+/g,""); } }); var str = " hello "; alert("(" + $.leftTrim(str) + ")"); })擴展實例方法
選項卡插件 div1div2div3
Sizzle選擇器 ★★★編寫選項卡的插件
介紹與實現接口
$() -> find()
通用選擇 *
層級選擇 > + ~
基本篩選 :
animated
:eq()
:even
:odd
:first
:last
:gt()
:lt()
內容篩選
:contains()
:empty
:parent
可見性篩選
:hidden
:visible
子元素篩選
:first-child
:last-child
:first-of-type
:last-of-type
:nth-child()
:nth-of-type()
:only-child
:only-of-type
表單篩選
:button
:checkbox
:radio
:checked
:disabled
:enabled
:selected
篩選方法 ★filter()
not()
has()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79373.html
摘要:而過去發生的一切,恍若昨天我一直都有個計劃每隔半年寫一篇總結以記錄我的大學生活,回看過去,總結不足,這便是我當初寫這個專題的目的。在大一結束的時候,我也寫過一篇一年總結記我的大一生活。 ...
摘要:一場因阿里云故障引發的突發事件,導致他所在的互聯網金融公司幾近癱瘓。此次事故從點分至點分,時長約一小時。對此,阿里云方面不予置評。但阿里云相關負責人向新浪科技表示,賠償問題將按照相關服務保障條款進行處理。 6月27日晚,北京國貿寫字樓2座燈火通明。林曉宇疾步往返于運維部與研發部的走廊上,表情有些凝重。 一場因阿里云故障引發的突發事件,導致他所在的互聯網金融公司幾近癱瘓。在運維部工作近一年,...
摘要:曾經霸主的下降最為嚴重,直接慘跌,跌落第,也持續跌落,前大語言中只有是保持正增勢的勢頭。時代的語言作為人工智能和大數據的支持語言,已經成為頭牌語言。根據調查顯示,的企業在面臨擬定策略時,常常無法獲得實時且有根據的決策信息。 妥妥的,作為編程界的老大,Python又一次霸榜了!!! 今年6月份,PYPL最新報告已經出爐了,Python持續稱王的腳步已經無人能阻止了!話不多說,我們來看報告...
摘要:曾經霸主的下降最為嚴重,直接慘跌,跌落第,也持續跌落,前大語言中只有是保持正增勢的勢頭。時代的語言作為人工智能和大數據的支持語言,已經成為頭牌語言。根據調查顯示,的企業在面臨擬定策略時,常常無法獲得實時且有根據的決策信息。 妥妥的,作為編程界的老大,Python又一次霸榜了!!! 今年6月份,PYPL最新報告已經出爐了,Python持續稱王的腳步已經無人能阻止了!話不多說,我們來看報告...
摘要:華為輪值董事長徐直軍對外宣稱,華為今年的收入將首次突破億美元大關,好于預期。而今年下半年華為動作頻繁,在接下來的一個月想要全年總營收破千億美元大關并不是難事。從華為目前的幾大業務線看,推動其營收增長最大功臣莫過于消費者業務了。華為輪值董事長徐直軍對外宣稱,華為今年的收入將首次突破1000億美元大關,好于預期。但具體業務增長情況,徐直軍并未做過多透露。相關數據統計顯示,去年全年,華為總營收為9...
閱讀 2574·2021-11-23 09:51
閱讀 3123·2019-08-30 15:54
閱讀 1075·2019-08-30 14:14
閱讀 3547·2019-08-30 13:59
閱讀 1402·2019-08-29 17:09
閱讀 1470·2019-08-29 16:24
閱讀 2850·2019-08-29 15:43
閱讀 914·2019-08-29 12:45