【jQuery操做必定要作變量本地化】(功能強大,一定效率不高)
一、本地化的意思是把 var dom = $("dom");
這樣就是變量本地化(這樣作緣由是,$的屬性方法不少,效率不高,本地化就是提升效率)php
【入口函數】
一、JQ入口函數,是在頁面dom元素加載完畢後就開始加載
JS入口函數等頁面所有加載完再加載(包括圖片)css
【width()和innerWidth()】
一、.width() 只能獲取內容的寬度
二、.innerWidth()獲取包括padding內的寬度不包括邊框
三、.outerWidth() 獲取包括border在內的寬度,不包括margin
四、.outerWidth(true) 獲取包括margin在內的寬度ajax
【jq的offset().left】
一、jq的offset().left獲取離窗口的左邊距,與有定位父級無關 *************和JS不一樣json
【.children("p")和.find("p")】
一、均可以尋找後代,但find能找後代的後代,children不能數組
【$("li:gt(2):lt(9)")】
一、這裏意思是 從第3個Li 選擇 到第13個li 連寫後面的lt是表明 從第三個開始角標爲0計算瀏覽器
【end()和addBack()】
一、 .end() 選擇前一級的元素
二、 .addBack() 選擇前面全部的元素安全
【$.trim(str)】
一、 清除字符串裏面的空格閉包
【清除冒泡或清除默認事件】
一、return false // 不能清除冒泡,只能清除默認事件
二、event.stopPropagation() //清除冒泡
三、event.preventDefault // 不能清除冒泡,只能清除默認事件
四、JQ triggleHandler() // 清除冒泡,清除默認事件框架
【表單序列化】(當表單用JQ的ajax方法)
一、data : $('#my_form').serialize(); (前提:表單input裏面的name要與php文件裏面的參數(.GET("name"))要一致)dom
****************eg:/*data : {/!*
使用這種方式獲取輸入的數據 , 若是數據量很是大的時候,就很是麻煩
這個時候咱們可使用表單序列化的方式進行.
*!/
/!*name : $('input[name = name]').val(),
pwd : $('input[name = pwd]').val()*!/
}*/
【remove()和empty()】
一、$("ul").remove(); 直接刪除ul節點
二、$("ul").empty(); 刪除ul裏面全部內容,不包括ul
【$(window)】
一、 window不用雙引號
【delete】(JS的方法)(案例看jq的備忘錄刪除功能)
一、delete刪除掉數組中的元素後,會把該下標出的值爲undefined,數組的長度不會變
【continue】
一、jQ裏面的$.each()方法不能使用continue;只能用原始的for循環才能使用
【普通事件和委託事件】
一、obj.click() 和 parent .on("click",obj,function(){})
*************************************************************
當用JS動態建立的dom元素就必須用委託on去綁定事件 其他都用.click();
【data】
eg: <li data-xxx="xxxxx">aaa</li> (這裏aaa是展示,xxxxx是跟這個li相關的數據)
一、 自定義屬性data- ********** 經過DOM存儲於DOM對象強相關的數據
二、 JS源生獲取data dom.dataset["xxx"];
三、 JQ $("obj").data("xxx");
【備忘錄學習地方】(JQ備忘錄)
一、store插件的使用 store.set("arr1",arr) store.get("arr1") store.clear();
store能保存本地數據,下次刷新的時候數組不會清空
**************************每次更改數組內容 都要更新store.set("arr1"); 由於store存儲的數據會根據瀏覽器自動選擇使用 localStorage、globalStorage 或者 userData 來實現本地存儲功能。
二、經過{}建立對象做爲備忘錄項,並添加到數組裏
三、delete刪除掉數組中的元素後,會把該下標出的值爲undefined,數組的長度不會變,本來的下標不會改變
四、continue:jQ裏面的$.each()方法不能使用continue;只能用原始的for循環才能使用
五、$.trim(str)
六、時間戳 (new Date()).getTime()
七、jq獲取日期時間的插件
【$.extend】(寫JQ插件的)(JQ)
一、原理 $.extend(json1,json2); 若是2者有相同屬性,json2會覆蓋json1的該屬性
二、寫插件要寫css 和 js 2個文件
三、js 默認樣式 (function($){
$.fn.extend({
myFn : function(){}
})
}
)(jQuery)
四、往後寫框架,用閉包更安全 var initTab = (function($){ function init(){} return init;})(jQuery)
initTab(); //return