首先,看看什么是链式操作:
实际上链式操作其实是通过对象上的方法最后把对象再返回回来,对象再继续调用方法,所以就有链式操作了。那么,简单实现一个:
<ul>
<li>★</li>
<li>★</li>
<li>★</li>
<li>★</li>
<li>★</li>
</ul>
ul li{list-style: none;display: inline-block;}
/*链式操作*/
/* prevAll()查找当前元素之前所有的同辈元素*/
$("ul li").hover(function(){$(this).css("color","red").prevAll().css("color","red")},
function(){$(this).css("color","").prevAll().css("color","")}
).click(function(){$(this).parent().children("li").off(); });
用链式操作节省代码量,代码看起来更优雅。
如果没有链式操作,完成这个操作需要写三个事件,onmouseover(),onmouseout(),onclick();来实现这个操作的功能。代码量比次方法多很多,这样看来用jquery的链式操作哟明显的优势。jquery专注于DOM对象操作,DOM的操作会在页面上体现出来,不需要jquery中通过返回值来表示。故当需要获取中间的某个操作时,用链式操作就不合适了。
那么,主要用链式操作的目的又是什么:
自问自答的方式来说,是为了更好的异步体验,提到异步自然就想到了回调函数。异步这词怎么说呢,举个简单的例子吧(嘿嘿,就拿做饭来说吧),我们可以把饭先煲在电饭煲里,然后去洗菜啊,炒菜等,等饭好了,电饭煲会给我一个会给我一个提示此流程操作完成。即我可以在同一时间内操作多个流程,关于异步跟数电中的异步其实实质是一样的。
故回调函数的含义:指先在系统的某个地方队函数进行登记,让系统知道这个函数的存在,然后,当某个事件发生时,再调用这个函数对事件进行响应。