欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

jQuery中API、事件和多库共存的简单介绍

程序员文章站 2022-03-17 20:03:01
...
本篇文章给大家带来的内容是关于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、事件和多库共存的简单介绍的详细内容,更多请关注其它相关文章!