自己動(dòng)手手寫(xiě)jQuery插件總結(jié)
jQuery是繼Prototype之后的又一款優(yōu)秀的JavaScript框架,深受廣大開(kāi)發(fā)者熱愛(ài),用戶(hù)甚廣。而jQuery一個(gè)很好的地方在 于用戶(hù)的自定義,即我們可以書(shū)寫(xiě)自己的插件來(lái)完善jQuery的各項(xiàng)功能,定制自己所需要的功能,剔除冗余的代碼,在頁(yè)面加載時(shí)候可以有一定程度上的提 升。
面試之后,觸動(dòng)很大,就是你要做的是一個(gè)了解十項(xiàng)還是精通一項(xiàng)的開(kāi)發(fā)者?于是花了幾天時(shí)間苦逼的研讀jQuery源碼,了解了jQuery的事件機(jī)制、選擇器以及瀏覽器兼容性是如何做到的等。之后就一直想要書(shū)寫(xiě)一款jQuery插件,來(lái)簡(jiǎn)單實(shí)現(xiàn)自己的一個(gè)小功能。

如上圖所示,插件實(shí)現(xiàn)的功能是當(dāng)鼠標(biāo)位于某個(gè)鏈接其上時(shí)候,鏈接移動(dòng),鼠標(biāo)離開(kāi)之后,鏈接歸位。
Html核心部分即
<ul id="catagory">
<li><a href="#">星期一</a></li>
<li><a href="#">星期二</a></li>
<li><a href="#">星期三</a></li>
<li><a href="#">星期四</a></li>
</ul>
上面開(kāi)始時(shí)候的功能如果我們單純只是使用jQuery來(lái)實(shí)現(xiàn)的話(huà)是這樣實(shí)施:
$(document).ready(function() {
$("#catagory a").hover(function() {
$(this).animate({ paddingLeft: "20px" }, { queue: false, duration: 500 });
}, function() {
$(this).animate({ paddingLeft: "0" }, { queue: true, duration: 500 });
});
});
現(xiàn)在,我們將功能封裝起來(lái),寫(xiě)成插件plugin.js,然后在HTML文件中外鏈進(jìn)來(lái):
(function ($) {
$.fn.extend({
//插件名稱(chēng) - paddingList
paddingList: function (options) {
//參數(shù)和默認(rèn)值
var defaults = {
animatePadding: 10,
hoverColor: "Black"
};
var options = $.extend(defaults, options);
return this.each(function () {
var o = options;
//將元素集合賦給變量 本例中是 ul對(duì)象
var obj = $(this);
//得到ul中的a對(duì)象
var items = $("li a", obj);
//添加hover()事件到a
items.hover(function () {
$(this).css("color", o.hoverColor);
//queue false表示不添加到動(dòng)畫(huà)隊(duì)列中
$(this).animate({ paddingLeft: o.animatePadding }, { queue: false, duration: 300 });
}, function () {
$(this).css("color", "");
$(this).animate({ paddingLeft: "0" }, { queue: true, duration: 300 });
});
});
}
});
})(jQuery);
當(dāng)然,外鏈plugin之前還需要src最初的jquery庫(kù)文件。調(diào)用插件的方式如下:
$(document).ready(function() {
$("#catagory").paddingList({ animatePadding: 30, hoverColor: "Red" });
});
- jquery ztree實(shí)現(xiàn)下拉樹(shù)形框使用到了json數(shù)據(jù)
- jquery.simple.tree插件 更簡(jiǎn)單,兼容性更好的無(wú)限樹(shù)插件
- 推薦8款jQuery輕量級(jí)樹(shù)形Tree插件
- 無(wú)限樹(shù)Jquery插件zTree的常用功能特性總結(jié)
- 一個(gè)基于jQuery的樹(shù)型插件(OrangeTree)使用介紹
- Jquery 實(shí)現(xiàn)彈出層插件
- 限制上傳文件大小和格式的jQuery插件實(shí)例
- 推薦一款jQuery插件模板
- zTree插件之單選下拉菜單實(shí)例代碼
- zTree插件之多選下拉菜單實(shí)例代碼
- jquery zTree異步加載簡(jiǎn)單實(shí)例分享
- js樹(shù)插件zTree獲取所有選中節(jié)點(diǎn)數(shù)據(jù)的方法
相關(guān)文章
jquery實(shí)現(xiàn)LED廣告牌旋轉(zhuǎn)系統(tǒng)圖片切換效果代碼分享
這篇文章主要介紹了jquery實(shí)現(xiàn)LED廣告牌旋轉(zhuǎn)系統(tǒng)圖片切換效果類(lèi)似路邊場(chǎng)景,很實(shí)用的代碼,推薦給大家,有需要的小伙伴可以參考下。2015-08-08
基于Jquery的簡(jiǎn)單&簡(jiǎn)陋Tabs插件代碼
一個(gè)基于Jquery的簡(jiǎn)單&簡(jiǎn)陋Tabs插件,學(xué)習(xí)的朋友可以參考下。2010-02-02
從零開(kāi)始學(xué)習(xí)jQuery (六) jquery中的AJAX使用
本篇文章講解如何使用jQuery方便快捷的實(shí)現(xiàn)Ajax功能.統(tǒng)一所有開(kāi)發(fā)人員使用Ajax的方式.2011-02-02
jquery實(shí)現(xiàn)excel導(dǎo)出的方法
最近要實(shí)現(xiàn)在web頁(yè)面上導(dǎo)出excel文件的功能,下面是具體的實(shí)現(xiàn)方法及思路2013-04-04
jquery分頁(yè)插件jquery.pagination.js使用方法解析
這篇文章主要針對(duì)js分頁(yè)插件jquery.pagination.js使用方法進(jìn)行解析,很實(shí)用的分頁(yè)插件,感興趣的小伙伴們可以參考一下2016-04-04
使用jQuery.Pin垂直滾動(dòng)時(shí)固定導(dǎo)航
這篇文章主要為大家詳細(xì)介紹了使用jQuery.Pin垂直滾動(dòng)時(shí)固定導(dǎo)航的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
jQuery入門(mén)基礎(chǔ)知識(shí)學(xué)習(xí)指南
這篇文章主要介紹了jQuery入門(mén)基礎(chǔ)知識(shí)學(xué)習(xí)指南,jQuery是當(dāng)下最主流人氣最高的JavaScript庫(kù),需要的朋友可以參考下2015-08-08

