https://zeptojs.comjavascript
針對移動端,處理了一系列如 click 點擊延遲 毫秒java
響應執行快git
目前 API 完善的框架中體積最小的一個(能用於項目的)github
prop() 經常使用於布爾值屬性的操做 checked seleted disabled enabledajax
attr() 經常使用於自定義屬性,獲取 布爾值屬性 時若是無則返回 undefined,prop 則不會出現這個問題json
在 zepto 中,用 attr() 也能夠獲取 布爾值屬性,當未定義屬性時,返回的是 false數組
prop 則與 jQuery 的 prop 徹底相同app
<!-- javascript 代碼 --> <script type="text/javascript" src="./js/zepto/zepto.js"></script> <script type="text/javascript" src="./js/zepto/touch.js"></script> <script type="text/javascript" src="./js/index.js"></script> <script> $("#btn").on("touchstart", function(){ $("#btn").prop("disabled", true); setTimeout(function(){ $("#btn").removeAttr("disabled"); }, 2000); }); </script>
$("#box").append("<p class="blue_line">Hello World</p>");框架
$newEle = $("<p class="blue_line">Hello World</p>", {class:"blue_line red_font", id:"new_ele"});
$("#box").append($newEle);
正常
$.each(數組, function(index, eachValue, arr){});
$.each(對象, function(attr, eachValue, obj){});
不能遍歷字符串、json 對象(本質也是字符串)
var jsonObj = JSON.stringify({name:"浩克", age:"31"});
zepto 可使用 $.each() 遍歷字符串、json
$.each(字符串, function(index, eachChar, str){});
$.each(jsonObj, function(attr, eachValue, obj){});
在 jQuery 中,獲取元素相對於視口的偏移量 {left: "200", top: "100"},只對佔位的元素可用,不然返回(0, 0)
在 zepto 中,返回的是一個對象,返回的的是一個對象 {left: "200", top: "100", width: "50", heigth: "50"},其中 width、height 包含 padding、border
在 jQuery 中返回的是 content-box 的寬高
在 zepto 中返回的是 content-box + padding-box 的寬高
且 zepto 中 沒有 innerWidth() 和 innerHeight() 方法
jQuery 中能夠拿到隱藏元素的 width / height
zepto 中
不能用 .width() / .height() 獲取到隱藏元素的 width / height
可是能夠用 .css("width"); / .css("height") 獲取到 width / height
使用父元素監聽子元素的事件觸發
最終觸發的是 子元素,使用 event.target 獲取觸發元素
一次綁定一勞永逸
在 jQuery 中
$("ul").live("click", "li", func); 事件委派在 jQuery-1.7 中剔除了 .live() 和 die()
$("ul").delegate("li", "click", func); $("ul").undelegate("li", "click", func);
$("ul").on("click", "li", func); 其中 this 指向 觸發事件的 li
在 zepto 中
剔除了 .live() 和 .delegate() 的相關方法(動物被襲擊)
1. 委託了同一個父元素 或者 觸發元素的事件範圍小於同類型元素的事件範圍
2. 同一個事件
3. 委派的事件產生了關聯
若是委託了同一父元素,則先綁定的會觸發後綁定的
若是委派範圍有包含關係,則範圍小的會觸發範圍大的事件
.tap 在 document 上綁定 touch 事件 實現單擊
.singleTap() 單擊事件
.doubleTab() 雙擊事件 若是還要實現單擊事件時,必須使用 .singleTab()____使用 .tap() 的話,雙擊無效
.longTap() 當元素被長按超過 750ms 時觸發
.swipe() .swipeUp() .swipeDown() .swipeLeft() .swipeRight()
當在元素上滑動 30px 以上時觸發
zepto 的 <form>
var data = $().serialize(); // 序列化成字符串 返回表單項鍵值對 name=kjf&password=123&rember=true
var data = $().serializeArray(); // 序列化成字符串 返回表單項鍵值對 ["name=jf", "password=123", "rember=true"]
var data = $().serializeArray(); // 序列化成字符串 返回表單項鍵值對 ["name=jf", "password=123", "rember=true"]