1. 程式人生 > >前端專案積累和總結——jQuery的extend()方法

前端專案積累和總結——jQuery的extend()方法

繼前篇《》,今篇學習一下jQuery為開發外掛提供的extend()方法

因為我在專案中用到了兩個別人寫好的外掛,一個分頁器pagination,一個樹形列表simpleTree。

為讀懂程式碼,更好地利用外掛,就必須瞭解extend()。

積累:(三)jQuery的extend()方法

1. 兩種擴充套件方法

jQuery.fn = $.fn = jQuery.prototype   // jQuery 的物件原型

(1)jQuery.extend() = $.extend()   //類方法,不需要例項化就可以使用的方法(工具類)。呼叫:$.fun(); 或 jQuery.fun();

(2)jQuery.fn.extend() = $.fn.extend() 例項方法 , 通過例項(如$("selector"))呼叫。呼叫:$("selector").fun();

另外,jQuery.extend()方法除了具有擴充套件 jQuery 類方法 的功能外,一般用於合併物件

jQuery.extend(target [, object1] [, objectN]); //合併 object1 ... objectN 到 target 物件,如果只有一個引數,則合併到 jQuery 物件中
例子:
var settings = { a: false, b: 5, name: "hh" }; 
var options = { a: true, name: "gg" }; 
jQuery.extend(settings, options); 
result:settings == { a: true, b: 5, name: "gg" }
2. 例項
(1)分頁器
function user_paginationNick(opt){
    //引數設定
    var pager={
        paginationBox:'pagination-nick',//分頁容器--必填
        mainBox:'main-box-nick',//內容盒子--必填
        //...
        data:[],//ajax請求的資料
    };
    pager = $.extend(pager,opt);//用opt物件來擴充套件pager物件,返回被擴充套件的pager物件
	
	//設定ajax請求資料分成的最大頁碼
    pager.maxCount=pager.data.length % pager.pageCount ? parseInt(pager.data.length / pager.pageCount) +1 :
    pager.data.length / pager.pageCount;

    //請求資料頁面跳轉方法
    function goPage(btn){
        
    }
    //建立非數字按鈕和資料內容區
    function createOtherBtn(){
		
    }

    //建立數字按鈕
    function createNumBtn(page){
        
    }

    //首屏載入
    createOtherBtn();//首屏載入一次非數字按鈕即可
    goPage(userPageFlag);//請求資料頁面跳轉滿足條件按鈕點選都執行,首屏預設跳轉到currentPage
}

呼叫:

user_paginationNick({
	data:userObj
});

(2)樹形列表

$(function(){//$(function(){ }是$(document).ready(function(){}的簡寫
	$.fn.extend({ // $.fn.extend對jQuery.prototype進得擴充套件,就是為jQuery類新增“成員函式”
		SimpleTree:function(options){
			
			//引數初始化
			var option = $.extend({
				click:function(a){ }
			},options);
			
			option.tree=this;	/* 在引數物件中新增對當前選單樹的引用,以便在物件中使用該選單樹*/
			
			option._init=function(){

			}/* option._init() End */
			
			/* 設定所有超連結不響應單擊事件 */
			this.find("a").click(function(){$(this).parent("li").click();return false; });
			
			/* 選單項 <li> 接受單擊 */
			this.find("li").click(function(){
				
			});
			
			/* 設定所有父節點樣式 */
			this.find("ul").prev("li").addClass("folder");
			
			/* 設定節點“是否包含子節點”屬性 */
			this.find("li").find("a").attr("hasChild",false);
			this.find("ul").prev("li").find("a").attr("hasChild",true);
			
			
			/* 初始化選單 */
			option._init();
			
			
		}/* SimpleTree Function End */
		
	});
});

呼叫:

$(function(){
	$(".st_tree").SimpleTree({
	  click:function(a){
	  }
	});
});

後記:剛接觸前端,對原生的js仍是一知半解,對jQuery更是無從下手,所以學一點會一點,懂一點是一點。

相關推薦

前端專案積累總結——jQuery的extend()方法

繼前篇《》,今篇學習一下jQuery為開發外掛提供的extend()方法。 因為我在專案中用到了兩個別人寫好的外掛,一個分頁器pagination,一個樹形列表simpleTree。 為讀懂程式碼,更好地利用外掛,就必須瞭解extend()。 積累:(三)jQuer

前端專案積累總結——表單驗證

前言: 自2017.7.6入職,如今已經整整五個月。在天津的培訓階段已經接近尾聲,我認為有必要總結一下這段時間學到的點點滴滴。做技術重在經驗和積累,既然入了軟體開發的“坑”,我只能硬著頭皮往下走。無論如何,在這條“軟”路上,我走過的每一步都應有它的意義和價值。 該前端專案簡

.net core MVC接受來自自前端的GETPOST請求方法的區別

小夥伴們都知道,常用的http請求有兩種方式,即GET方法和POST方法,很多剛入門的童鞋難免都會有一個誤區,是不是GET是從伺服器上獲取資料,POST是向伺服器傳送資料? 我的理解是:不論是GET還是POST,都是向伺服器提交資料,並且請求之後都會從伺服器獲取資料,兩者的區別僅是傳送方式不同而已,GET通

純自創新浪部落格前端專案jshtml自己寫時操作步驟詳細,用到的圖片已上傳,已90%但非完整專案

//這部分是html檔案 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&

Ubuntu 16.04 經驗積累總結

前言:起先是安的14.04+win10雙系統,後來16.04出了後,頭腦一熱就把win10給解除安裝了(原因是覺得16.04的開機介面比14的開機介面好看…固態也沒多少空間了),結果用了沒幾天不知道改了啥unity一直不顯示(蛋疼了好幾天一隻解決不了只好換

JQuery控制radio選中不選中方法總結

use 獲取 class rop als trade val pro put 一、設置選中方法 代碼如下: $("input[name=‘名字‘]").get(0).checked=true; $("input[name=‘名字‘]").attr(‘checked‘,

前端開發規範總結 總結前端開發模式規範

這樣的 oat 真假 貢獻 駝峰命名 lpad 使用 後者 載器 1、前端開發規範 WEB客戶端開發自成體系, 主要用於智能終端(iPhone、Android手機、iPad、Android Pad)和傳統PC的開發。JS規範、HTML規範和CSS規範對客戶端開發進行全方位指

JavaScript中的深拷貝淺拷貝方法總結

在日常的程式碼書寫中常常會遇到拷貝問題,今天我們就來總結一下常用的淺拷貝和深拷貝都有哪些實現方法。 淺拷貝常用方法: slice var arr1=[1,2],arr2=arr1.slice(); console.log(arr1);//[1,2] console.log(a

js中動態獲取頁面的高度寬度的方法總結

javascript,jquery獲取網頁的高度和寬度: javascript: 可視區域寬:document.documentElement.clientWidth(width+padding) 可視區域高:document.documentElement.clientHeight(h

js中陣列字串的方法總結

一、陣列方法簡單總結為以下幾種   1、原有:     增、刪、改、截、拼、復、排、轉   2、ES5擴充套件:   查、遍歷 增:        前增 var arr = [3,4,5,6,7]; console.log(arr.unshift(

前端專案實踐之“道”:用對了方法,效率翻番

作者:個推Web前端首席前端架構師姜季廷 現在前端非常火熱,相關的技術更是層出不窮,前端人也在不停地學學學。那麼有沒有什麼“偷懶”的方式,幫助我們更加有效地完成編碼的KPI呢?本人從事前端開發工作多年,負責公司多個大型專案前端架構設計與落地實踐,本文就和大家聊一聊前端的“專案實踐之道”與“

專案使用less預編譯css的常用東西步驟總結

Less使用 http://lesscss.cn/(Less 中文網) 下載編譯工具(koala) 安裝 開啟後如圖   初始化設定 點選設定進行語言設定,關閉重啟 點選加號進行程式碼專案匯入,如上圖所示 右擊此專案設定輸出路徑,雙擊此專案進行less設定   Les

nodejs解壓版安裝配置(帶有搭建前端專案腳手架)

nodejs 安裝  我先前用了nvm,覺得nvm挺厲害可以隨時更換nodejs版本,但是研究了下,可能自己功力不夠還是什麼,並不好用,中間還出現了錯誤;所以最後還是解除安裝了; 本文圖文並茂的一步一步的來,旨在好用簡潔: 1】第一步:下載nodejs 中文官網: https://nodej

android天天理財專案構建思路程式碼總結知識點--2

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="white-space:pre"> </sp

android天天理財專案構建思路程式碼總結知識點--1

本專案屬於android開發者入門練習上手的簡單專案,值得學習和研究總結一下,內部的套路在開發android上都是大同小異。首先我們把幾個大的功能點分割槽看下,後續我在寫其他的內部分支功能。 模組大體功能 檢視詳情 新增支出

總結前端隱藏div的幾種方法

在瀏覽論壇的時候,看到有朋友在面試的時候被問了有幾種方法實現讓一個div隱藏,下面來總結一下: display:none; 該屬性會完全隱藏元素,並不會佔據頁面空間   visibility:hidden; 該屬性僅僅是隱藏元素,但會佔據頁面空間

linux中將printf重定向到telnet的方法總結

在linuxc開發過程中肯定會遇到重定向的問題,重定向最多的就是printf,下面給出重定向的程式碼和需要注意的問題。 void telnetCtlPrintf(int index) { int fd; char tempPath[64]; memset(tempPath,0,s

一起學Hive——總結複製Hive表結構資料的方法

在使用Hive的過程中,複製表結構和資料是很常用的操作,本文介紹兩種複製表結構和資料的方法。 1、複製非分割槽表表結構和資料 Hive叢集中原本有一張bigdata17_old表,通過下面的SQL語句可以將bigdata17_old的表結構和資料複製到bigdata17_new表: CREATE TABLE

Web 專案啟動關閉執行的某個方法

一、web.xml配置 <listener>       <listener-class>com.servlet.InitListener</listener-class> </listener>      com.se

Lombok介紹、使用方法總結

1 Lombok背景介紹 官方介紹如下: Project Lombok makes java a spicier language by adding 'handlers' that know how to build and compile simple, boiler