导航:首页 > 编程语言 > jquery链式编程原理

jquery链式编程原理

发布时间:2022-08-04 04:42:45

Ⅰ 那些年用jquery处理事件,这些年想知道内部原理吗

说起jQuery的事件,不得不提一下Dean Edwards大神 addEvent库 ,很多流行的类库的基本思想从他那儿借来的

jQuery的事件处理机制吸取了JavaScript专家Dean Edwards编写的事件处理函数的精华,使得jQuery处理事件绑定的时候相当的可靠。

在预留退路(graceful degradation),循序渐进以及非入侵式编程思想方面,jQuery也做的非常不错

总的来说对于JQuery的事件绑定

在绑定的时候做了包装处理

在执行的时候有过滤器处理

.on( events [, selector ] [, data ], handler(eventObject) )

selector : 一个选择器字符串,用于过滤出被选中的元素中能触发事件的后代元素

data :当一个事件被触发时,要传递给事件处理函数的

handler:事件被触发时,执行的函数

var body = $('body')
body.on('click','p',function(){
console.log(this)
})
用on方法给body上绑定一个click事件,冒泡到p元素的时候才出发回调函数

这里大家需要明确一点: 每次在body上点击其实都会触发事件,但是只目标为p元素的情况下才会触发回调handler

通过源码不难发现,on方法实质只完成一些参数调整的工作,而实际负责事件绑定的是其内部jQuery.event.add方法,转载,仅供参考。

Ⅱ 请问链式编程是什么意思啊

链式编程 是将多个操作(多行代码)通过点号"."链接在一起成为一句代码。 链式代码通常要求操作有返回值, 但对于很多操作大都是void型,什么也不返回,这样就很难链起来了, 当然也有解决办法,可能不太优雅。 链式编程的新思想在jQuery中已流行使用
希望采纳

Ⅲ 问大牛们一个问题,jq是怎么实现 $('aaa').fadeIn();这样的写法的

这个是jquery的链式调用,他的选择器返回的是jquery对象,而find,eq等等都是jquery对象的内置方法,所以可以无限的传递。
你可以去参考一些jquery的链式调用资料,学习一下。

Ⅳ jQuery链式操作如何实现以及为什么要用链式操作

链式操作就是分步骤地对jQuery对象实现各种操作,举个栗子:

$("#Test").css('color','red').show(200).removeClass('style');

上面的例子就是链式操作,在一行代码里,对id为Test的对象进行了三项操作:先设置其字体颜色为红色,再显示对象,最后移除对象的“style”这个样式。再炒个板栗:

$("#Test").addClass('style').find("div").eq(0).fadeOut(200);

上面的例子意为:先为id为Test的对象添加"style"这个样式,再找寻其下的第一个div标签,并使其淡出。

通过上面的两个例子不难看出链式操作就是围绕一个jQuery对象进行的,很简单吧?


为什么要用链式操作呢?原因有两个:

  1. 代码更精简。链式操作能大大精简代码量,多项操作一行代码一气呵成,搞定;

  2. 优化性能。使用链式操作,所有操作代码共享一个jQuery对象,省去了逐步查询DOM元素的性能损耗。

Ⅳ JQuery的链式编程,隐式迭代是啥意思

链式编程,隐式迭代是jQuery的一个特性,它支持以链条的形式,不用显示的迭代多层数据。
举个列子:
//普通做法是这样的
obj.name
=
'小明';
obj.age
=
155;
//链式编程是这样的。
obj.name('小明').age(15);

Ⅵ js 如何实现链式编程

您好:没细看你的代码。要实现链式编程像Jquery一样。只要每个方法返回对象本身即可。

Ⅶ jquery选择器$("...")返回的是数组,为什么还能继续练式操作$("...").方法

1、jquery选择器$('selector')返回的不是数组,而是封装好的jquery对象。但这个对象有一个特别的地方,就是查询到的节点被以下标为属性,添加到了jquery对象上,所以它看起来像数组,因为它存在一些属性是数字;


2、jquery对象有哪些属性和方法?

我们可以理解,$('selector')返回了一个对象obj,obj[0]....obj[i]总是返回查询到的第i个节点。除此之外,jquery对象还被通过prototype添加了一些方法,即:

jQuery.prototype.each=function(){}
jQuery.prototype.hasClass=function(){}
jQuery.prototype.hide=function(){}
jQuery.prototype.css=function(){}
jQuery.prototype.attr=function(){}

等等。这样的话,$('selector')返回的对象就可以调用这些方法,比如obj.attr('name')、obj.css('color', 'red')。


3、jquery方法如何处理多个节点?

实际上,以上诸如hide、css、attr等方法,在jquery内部都是通过循环来处理各个节点的。但是,如果是要获取节点属性,比如obj.attr('name'),显然这个只能返回一个字符串,所以类似的方法都是获取节点集合中的第一个节点的属性。也就是说,虽然返回的节点很多,但只有第一个会被处理。


4、为什么jquery可以链式调用?

在jquery中,很多同名的方法通过参数个数的不同实现不同的功能,比如css方法,如果传一个参数则表示获取css属性;如果传两个参数,则表示给节点添加某个属性,并赋值为第二个参数。attr、width等也是这样的处理。对于方法的返回值,除了获取属性值、获取css值等需要返回实际值的方法外,当css方法、attr方法表示为为节点添加属性、css样式时,是不需要返回值的,但jquery让这些方法返回了this,也就是返回了调用者自身,所以可以链式调用。

Ⅷ 用jquery如何获取到指定的值

这个有很多种方法,

  1. 通过id $("#id")

  2. 通过class $(".class")

  3. 通过name $("[name='name']")

  4. 通过标签,例如: input $(":input")

等等

通过以上方法找到对象,然后在进行操作,比如需要这些对象的values值,就在后面加.val()等等。

jquery是可以链式编程的,非常方便

阅读全文

与jquery链式编程原理相关的资料

热点内容
gz压缩文件夹 浏览:177
字母h从右往左跑的c语言编程 浏览:127
安卓手机如何拥有苹果手机横条 浏览:765
业余编程语言哪个好学 浏览:137
按照文件夹分个压缩 浏览:104
航空工业出版社单片机原理及应用 浏览:758
如何在电信app上绑定亲情号 浏览:376
安卓的怎么用原相机拍月亮 浏览:805
配音秀为什么显示服务器去配音了 浏览:755
c盘清理压缩旧文件 浏览:325
app怎么交付 浏览:343
图虫app怎么才能转到金币 浏览:175
如何做征文app 浏览:446
用什么app管理斐讯 浏览:169
安卓如何下载宝可梦剑盾 浏览:166
编译器开发属于哪个方向 浏览:940
megawin单片机 浏览:687
以色列加密货币监督 浏览:909
程序员前端现在怎么样 浏览:499
服务器和接口地址ping不通 浏览:557