Rumah >hujung hadapan web >tutorial js >jQuery中API、事件和多库共存的简单介绍

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

不言
不言ke hadapan
2018-10-22 14:01:072458semak imbas

本篇文章给大家带来的内容是关于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>


Atas ialah kandungan terperinci jQuery中API、事件和多库共存的简单介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:segmentfault.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam