jquery自定義組件實(shí)例詳解
緣起
我們知道在JQ中,是允許我們自定義一些插件與擴(kuò)展的。定義的方式也比較簡單,采用$.extend就行,那么下面就來看看在JQ中自定義一個(gè)插件的實(shí)例
JQuery如何封裝一個(gè)組件
效果
我們先來看封裝好的組件的效果圖,這是一個(gè)根據(jù)組織機(jī)構(gòu)選擇人員的組件。
實(shí)現(xiàn)原理
我們先定義一個(gè)DbwSelectUser函數(shù)
DbwSelectUser : function (options) { var opt = $.extend({ //是否多選:true(多選),false(單選) multi:true, offset:'auto', //layerIndex:彈出窗口索引 //users數(shù)據(jù)結(jié)構(gòu):[{userId:'', userName:'', departId:'', departName:''}] onOk:function(layerIndex, users){} }, options || {}); $.LoadIframe({ title: '請選擇人員', content: 'assets/js/extend/jquery/userSelect/user-select.jsp?multi=' + opt.multi, maxmin: false, area: ['840px', '500px'], resize: false, scrollbar:false, offset: opt.offset, btn: ['確定', '取消'], yes: function (index, layero) { var iframeWin = $(layero).find('iframe')[0].contentWindow; //users:[{userId:'', userName:'', departId:'', departName:''}] var users = iframeWin.getSelectedUsers(); opt.onOk(index, users); return false; } }, false); }
這里的user-select.jsp就是要彈出的頁面
這邊調(diào)用了LoadIframe方法并傳入了參數(shù),我們來看看LoadIframe方法的實(shí)現(xiàn)
LoadIframe: function (options, fullScreen) { /*layer的默認(rèn)配置*/ var _default = { type: 2, title: '系統(tǒng)窗口', content: '', area: 'auto', shadeClose: false, maxmin: true, maxWidth: 600, maxHeight: 500 }, o = $.extend(_default, options || {}), index = layui.layer.open(o); if (fullScreen) { //窗口全屏 layui.layer.full(index); } return index; }
使用
$.DbwSelectUser({ //offset:彈出框顯示位置(空或auto:居中,rb:右下角) offset:'rb', //選好人員后彈出框的“確定”按鈕單擊事件回調(diào)函數(shù) onOk:function(layerIndex, users) { //layerIndex:彈出框layer的索引 //users數(shù)據(jù)結(jié)構(gòu):[{userId:'', userName:'', departId:'', departName:''},{....}] //以下編寫接收到所選人員后自己的業(yè)務(wù)邏輯 } });
可以看到其實(shí)是對layui的一個(gè)彈窗進(jìn)行了封裝,其中$.extend是JQuery里面擴(kuò)展插件的一個(gè)方法,會(huì)用后面的同名變量替換前面的。在上訴代碼中的作用是用來如果你沒有傳某個(gè)屬性,就用默認(rèn)的屬性。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery通過ajax方法獲取json數(shù)據(jù)不執(zhí)行success的原因及解決方法
這篇文章主要介紹了jQuery通過ajax方法獲取json數(shù)據(jù)不執(zhí)行success的原因及解決方法的相關(guān)資料,需要的朋友可以參考下2016-10-10jquery實(shí)現(xiàn)html頁面 div 假分頁有原理有代碼
大概原理就是填充后div的總高度 (1000px) 顯示高度(100px) 則頁面總數(shù)為10頁 。當(dāng)查看第二頁時(shí),顯示的div高度為100 - 200之間,以此類推2014-09-09基于jquery的一個(gè)浮動(dòng)框(擴(kuò)展性比較好 )
在用Maxthon的時(shí)候無意看到一個(gè)浮動(dòng)框,把它改成基于jquery的,擴(kuò)展性比較好,發(fā)來分享下。2010-08-08解決jquery有正確返回值但不執(zhí)行success函數(shù)的問題
今天小編就為大家分享一篇解決jquery有正確返回值但不執(zhí)行success函數(shù)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08jQuery插件之Tocify動(dòng)態(tài)節(jié)點(diǎn)目錄菜單生成器附源碼下載
Tocify是一個(gè)能夠動(dòng)態(tài)生成文章節(jié)點(diǎn)目錄的jQuery插件,通過本文給大家分享jQuery插件之Tocify動(dòng)態(tài)節(jié)點(diǎn)目錄菜單生成器,對tocify菜單生成器相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-01-01