事件触发trigger和triggerHandler
trigger 执行冒泡事件
triggerHandler 执行不冒泡事件
如果是一批p节点都添加了一个事件
$('p').click(function(){alert(1)}); $('p').trigger('click'); $('p').triggerHandler('click');
trigger 会对每个p节点都进行事件传递
triggerHandler 只会激活第一个p节点的事件
标准处理会长很多很多
dispatch = w3c ? function(el, type){ try{ var evt = document.createEvent('Event'); evt.initEvent(type,true,true); el.dispatchEvent(evt); }catch(e){alert(e)}; } : function(el, type){ try{ el.fireEvent('on'+type); }catch(e){alert(e)} };
eq和get的区别
<p style="color:yellow">绯雨</p> $("p").eq(0).css("color") $("p").get(0).style.color $($("p").get(0)).css("color")
eq返回的是jq对象, get返回的是html对象
jq对象转换为html对象
任何时候只要在jq对象后面加上[0]就可以转为html对象
找到指定的类标签
很简单
$(".classA.classB") $(".classA").find("classB") .hasClass("classB")
第一二行输出这个对象
第三行判断是否有这个对象
动态添加和移除class方法
对jq对象进行添加和移除class方法, 可以智能处理识别符
.addClass("intro"); .removeClass("intro");
的子对象集children
$("#main").children("div.sub")
判断是否支持触摸
var isSupportTouch = ("createTouch" in document);
对象的隐藏和显示
$('ul.load_details').css({visibility,"visible"}) $('ul.load_details').css({visibility,"hidden"}) $('ul.load_details').show() $('ul.load_details').hide()
以上的css和jq方法是不冲突的, 如果css设置不可见, 则设置show无法显示, 请注意
对象的动画处理
http://api.jquery.com/animate/
除了显示隐藏, jq还有animate方法, 很方便
$("div.pt-triggers").animate({opacity: "show"},持续时间, 结束调用的方法);
具体设置参考官网api帮助
id和class的命名规则
不要使用.连字符, 按照正常的变量方式来命名字符串, 否则jquery帮不了你
添加事件
很简单, 相比js的简单多了
$("#obj_id_name").click(function(){ //sth })
下面是普通方式添加
var btn = document.getElementById("myBtn"); btn.addEventListener("click", function () { alert(this.id); }, false);
判断浏览器平台, 内核, 相对全
借鉴了下面两个网址, 都有错, 修正了一下
http://www.jb51.net/article/26736.htm
http://blog.csdn.net/sangim/article/details/8834104
var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return { version: (u.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1], safari: /webkit/.test( u ), opera: /opera/.test( u ), msie: /msie/.test( u ) && !/opera/.test( u ), mozilla: /(mozilla|Mozilla)/.test( u ) && !/(compatible|webkit)/.test( u ) , trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //opera内核 webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核 gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核 mobile: !!u.match(/AppleWebKit.*Mobile.*/),//||!!u.match(/AppleWebKit/), //是否为移动终端 ios: !!u.match(/(i[^;]+\;(U;)? CPU.+Mac OS X)/), //ios终端 android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器 iPhone: u.indexOf('iPhone') > -1,// || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器 iPad: u.indexOf('iPad') > -1, //是否iPad webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部 }; }(), language:(navigator.browserLanguage || navigator.language).toLowerCase() }
ios不支持html5麦克风录制声音
http://www.jb51.net/html5/81028.html