jQuery属性、事件、链式编程、$冲突
一、jQuery特殊属性操作
val():操作value属性
html():获取和设置内容识别标签
text():获取和设置内容不识别标签
width():获取当前div的实际宽度
innerWidth():获取当前div的实际宽度+padding的值
outWidth():获取当前div的实际宽度+padding的值+边框的值:当参数为true是再加上margin的值
height():获取当前div的实际高度
innerHeight():获取当前div的实际宽度+padding的值
outHeight():获取当前div的实际宽度+padding的值+边框的值:当参数为true是再加上margin的值
scrollTop():获取页面被卷曲的高度
scrollLeft():获取页面被卷曲的宽度
获取元素的位置:返回object对象
offset():获取元素相对于document的位置
position():获取元素相对于有定位的父元素的位置
二、jQuery事件机制
1、注册事件
简单事件:给自己注册事件
jq对象.click(function(){
});
jq对象.bind({
click:function(){},
mouseenter:function(){},
});
注意以上两种对于动态生成的jq对象没有事件
委托事件:由当前元素下指定元素来执行
delegate:委托:动态创建的时候也会有事件
给父元素注册事件,最终子元素来执行
jq对象.delegate("选择器",“事件类型",function(){});
第一个参数:事件最终是什么元素来执行
第二个参数:什么事件类型
第三个参数:执行函数
on方法的注册事件:
第一种:给自己注册
jq对象.on('事件名',function(){})
第二种:委托:给子元素注册事件
jq对象.on('事件名','子元素名',function(){})
注意:先执行自己的委托事件再执行自己的事件
2、移除事件绑定
jq对象.off(事件名);不传参数则全部清除事件,如有参数则只删除此事件
jq对象调用别的jq对象的事件:1、jq对象.click();2、jq对象.trigger('事件名')
3、事件对象传参
on注册事件时的传参: jq对象.on('事件名',data,function(e){var a = e.data})
4、阻止事件冒泡和阻止标签的默认行为
阻止默认行为: jq对象.on('事件名',data,function(e){e.prevenDefault()})
阻止事件冒泡:e.stopPropagation()
return false;能阻止事件冒泡也可以阻止默认行为
三、链式编程
设置性操作:可以链式编程(原理返回jq对象)
获取性操作:不可以链式编程(返回的不是jq对象)
end()方法:返回上一次的jq对象
四、$函数冲突问题
$.noConflict();
方法一:jQuery释放$控制权后用jQuery代替$;
方法二:var 变量 = $.noConflict(); 此变量可以替代$;