在jquery中,插件開發(fā)常見的有:
成都創(chuàng)新互聯(lián)公司成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站,網(wǎng)頁設(shè)計師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:18982081108
一種是為$函數(shù)本身擴展一個方法,這種是靜態(tài)擴展(也叫類擴展),這種插件一般是工具方法,
還有一種是擴展在原型對象$.fn上面的,開發(fā)出來的插件是用在dom元素上面的
一、類級別的擴展
$.showMsg = function(){ alert('hello,welcome to study jquery plugin dev'); } // $.showMsg();
注意要提前引入jquery庫, 上例在$函數(shù)上面添加了一個方法showMsg,那么就可以用$.showMsg()調(diào)用了
$.showName = function(){ console.log( 'ghostwu' ); } $.showName();
這種插件比較少見,一般都是用來開發(fā)工具方法,如jquery中的$.trim, $.isArray()等等
二、把功能擴展在$.fn上,
這種插件就是用在元素上,比如,我擴展一個功能,點擊按鈕,顯示當(dāng)前按鈕的值
$.fn.showValue = function(){ return $(this).val(); } $(function(){ $("input").click(function(){ // alert($(this).showMsg()); alert($(this).showMsg()); }); });
在$.fn上添加一個showValue方法, 返回當(dāng)前元素的value值. 在獲取到頁面input元素,綁定事件之后,就可以調(diào)用這個方法,顯示按鈕的值 "點我",在實際插件開發(fā)中,常用的就是這種.接下來,我們就用這種擴展機制開發(fā)一個簡單的選項卡插件:
頁面布局與樣式:
Document
tab2.js文件
;(function ($) { $.fn.tabs = function (opt) { var def = { evType: "click" }; //定義了一個默認配置 var opts = $.extend({}, def, opt); var obj = $(this); $("ul li:first", obj).addClass("active"); obj.children("div").hide(); obj.children("div").eq(0).show(); $("ul li", obj).bind(opts.evType, function () { $(this).attr("class", "active").siblings("li").attr("class",""); var id = $(this).find("a").attr("href").substring(1); obj.children("div").hide(); $("#" + id, obj).show(); }); }; })(jQuery);
1,一個自執(zhí)行函數(shù),把插件封裝成模塊,把jQuery對象傳給形參$
2,第3行,定義一個默認配置,選項卡的觸發(fā)類型,默認為點擊事件
3,第4行,如果opt傳參,就用opt的配置,否者就用第3行的默認配置,這行的作用就是為了在不改變插件源碼的情況下,可以配置插件的表現(xiàn)形式
4,第7-9行,讓選項卡第一個div顯示,其余的都隱藏,讓第一個tab加上class='active' 黃色高亮選中
5,第11-16行,點擊對應(yīng)的選項卡,讓對應(yīng)的div顯示與隱藏
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。