本文主要是介绍移动开发流量省起来之Zepto,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
移动开发流量省起来之Zepto
转载于深蓝的镰刀
选择器
<html><body><ul id="items"><p>This is it!</p></ul><script src="http://www.cnphp6.com/archives/zepto1.1.6.js"></script><script>alert($("#items").html());</script></body></html>
追加
<html><body><ul id="items"><p>This is it!</p><p>Hello</p></ul><script src="http://www.cnphp6.com/archives/zepto1.1.6.js"></script><script>$('ul').append('<p>new list item</p>') </script></body></html>
克隆 (注:zepto的clone()方法不能像jquery的clone()可以同时克隆data和绑定事件)
<html><body><ul id="items"><p>This is it!</p><p>Hello</p></ul><script src="http://www.cnphp6.com/archives/zepto1.1.6.js"></script><script>$('ul').append($("#items").clone()) </script></body></html>
ajax
$.ajax({type: 'GET',url: '/projects',data: { name: 'Zepto.js' },dataType: 'json',timeout: 300,context: $('body'),success: function(data){this.append(data.project.html)},error: function(xhr, type){alert('Ajax error!')}})$.ajax({type: 'POST',url: '/projects',data: JSON.stringify({ name: 'Zepto.js' }),contentType: 'application/json'})
因为Zepto是jQuery-compatible的,所有如果你会使用jquery,那么你已经会了Zepto。以上这些用法基本与jquery一致,下面说几个我看到的与jquery不同的地方。
1.Zepto基础库不支持很多css选择器
比如很常用的$(“:selected”),$(“p:eq(1)”),$(“li:first”)这类,不过Zepto的库提供很多拓展的模块,你只需要在他的官网上按需要编译你需要的模块然后保存为zepto.js即可,或者直接使用在线编译,其中如果开启了selector模块,你就能支持大部分的css选择器了。
2.如果你开启了detect模块,那么你就可以用Zepto判断用户设备、操作系统和浏览器的功能(测试了几个还算可以用,不知是否准确)
<html><body><ul id="items"><p>This is it!</p></ul><!-- 该js必须开启了detect模块 --><script src="http://www.cnphp6.com/archives/zepto.js"></script><script>// general device typealert($.os.phone);alert($.os.tablet);// specific OSalert($.os.ios);alert($.os.android);alert($.os.webos);alert($.os.blackberry);alert($.os.bb10);alert($.os.rimtabletos);// specific device typealert($.os.iphone);alert($.os.ipad);alert($.os.ipod); // [v1.1]alert($.os.touchpad);alert($.os.kindle);// specific browseralert($.browser.chrome);alert($.browser.firefox);alert($.browser.safari); // [v1.1]alert($.browser.webview); // (iOS) [v1.1]alert($.browser.silk);alert($.browser.playbook);alert($.browser.ie); // [v1.1]</script></body></html>
3.如果开启了form模块,就可以对你的表单进行数据序列化,类似jquery的jquery form插件
<html><body><form><input name="user" value="xxx" type="text"/><input name="password" value="123" type="password"/></form><!-- 该js必须开启了form模块 --><script src="http://www.cnphp6.com/archives/zepto.js"></script><script>var formData = $('form').serializeArray();alert(formData[0]['name']);alert(formData[1]['name']);alert(formData[0]['value']);alert(formData[1]['value']);</script></body></html>
4.如果开启了touch模块,你就可以使用tap(触屏点击) 和 swipe(触屏滑动),类似Jquery mobile 插件
<html><body><style>.delete { display: none; }#items{font-size:30px;}</style><ul id="items"><li>List item 1 <span class="delete">DELETE</span></li><li>List item 2 <span class="delete">DELETE</span></li></ul><!-- 该js必须开启了touch模块 --><script src="http://www.cnphp6.com/archives/zepto.js"></script><script>$('#items li').swipe(function(){$('.delete').hide()$('.delete', this).show()})$('.delete').tap(function(){$(this).parent('li').remove()})</script></body></html>
注:Zepto的swipe事件在某些Android手机(如安卓4.4)仍存在不起作用的情况。期待Zepto修复这个bug。
这篇关于移动开发流量省起来之Zepto的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!