jQuery中API、事件和多库共存的简单介绍
API
prop() 和 attr()
prop() 方法用来改变影响DOM元素的动态状态,而不是改变HTML属性。比如: disabled、checked。
val()
设置或者返回表单元素(input、select、textarea)的值。
width() 和 height()
设置或者获取匹配元素的宽度和高度值,返回的是number(不带单位),而$(selector).css('width')返回的是string(带有单位)。
offset()
获取:返回值 {left: Number, top: Number}是相对于 document 的位置。
设置:如果元素没有定位(即 position: static),将会修改为 relative。
position()
获取匹配元素相对于其最近的具有定位(即position不是static)的父元素的位置{left: Number, top: Number},不能设置。
scrollLeft() 和 scrollTop()。
获取或者设置元素水平和垂直方向的位置,数值类型。
垂直滚动条位置 是可滚动区域 在 可视区域上方的 被隐藏区域的高度。
如果滚动条在最上方没有滚动 或者 当前元素没有出现滚动条,那么这个距离为0。
事件
事件绑定 bind()、delegate() 和 on()
bind()在1.7以后被on()取代,绑定多个事件:$(selector).on('dblclick contextment', function(){}); on()也兼容zepto。但是这两种方法的缺点是要绑定的元素必须存在文档中。
语法: $(selector).on('events'[, 'selector'][, data], handler); 其中第一个参数可以是标准事件名,也可以是自定义事件(通过trigger触发),第二和第三个参数可以省略,第二个参数为匹配元素的后代元素,第三个参数为传递给处理函数的数据,即在函数中通过 event.data 来接收。
delegate() 支持对动态创建的元素有效。
语法:$('p').delegate('p', 'mousemove', function(){}); 为div下面的p(包括未来产生的)绑定mousemove事件。
事件解绑 unbind()、undelegate() 和 off()
不传参数就解绑匹配元素的所有事件,否则就解绑指定参数的事件。
$(selector).off('click', '**'); 解绑所有代理的click事件,而元素本身的事件不会被解绑。
事件触发 trigger() 和 triggerHandler()
简单触发:$(selector).click();
trigger()触发事件,触发浏览器行为。$(selector).trigger("click");
triggerHandler()触发事件响应方法,不触发浏览器行为。$(selector).triggerHandler("focus");
事件对象event
event.data 传递给事件处理程序的额外数据
event.currentTarget 等同于this,指当前DOM对象
event.target 触发事件源,不一定是等同this(通常在事件委托中出现)
event.type 事件类型
event.which 鼠标的按键类型:左1 中2 右3 或者键盘码
event.keyCode 键盘码
event.pageX 鼠标相对于文档左部边缘的位置
链式编程
原理: return this;
通常只有设置操作才可以链式操作,获取操作时返回相应的值,无法返回this。
end() 结束当前链最近的一次过滤操作,并且返回匹配元素之前的状态。
多库共存
jQuery占用了$ 和jQuery这两个变量,如果同一个页面引用了jQuery库,还引用了其他库或者其他版本的jQuery也用的了$或jQuery这个变量,为了保证每个库都能正常使用,就需要让jQuery交出变量的控制权。 $.noConflict(); 交出$ $.noConflict(true); 交出$ 和 jQuery <script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script> console.log($.fn.jquery); // 3.2.1 console.log(jQuery.fn.jquery); // 3.2.1 </script> <script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script> $.noConflict(); console.log($.fn.jquery); // 2.2.4 console.log(jQuery.fn.jquery); // 3.2.1 </script> <script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script> $.noConflict(true); console.log($.fn.jquery); // 2.2.4 console.log(jQuery.fn.jquery); // 2.2.4 </script>
以上就是jQuery中API、事件和多库共存的简单介绍的详细内容,更多请关注其它相关文章!
上一篇: Javascript事件与鼠标坐标的属性
下一篇: Mysql搜索引擎及其区别