jquery自定義組件實例詳解
緣起
我們知道在JQ中,是允許我們自定義一些插件與擴(kuò)展的。定義的方式也比較簡單,采用$.extend就行,那么下面就來看看在JQ中自定義一個插件的實例
JQuery如何封裝一個組件
效果
我們先來看封裝好的組件的效果圖,這是一個根據(jù)組織機構(gòu)選擇人員的組件。

實現(xiàn)原理
我們先定義一個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方法的實現(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ù)邏輯
}
});
可以看到其實是對layui的一個彈窗進(jìn)行了封裝,其中$.extend是JQuery里面擴(kuò)展插件的一個方法,會用后面的同名變量替換前面的。在上訴代碼中的作用是用來如果你沒有傳某個屬性,就用默認(rèn)的屬性。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
通過jquery獲取上傳文件名稱、類型和大小的實現(xiàn)代碼
這篇文章主要介紹了在文件上傳到服務(wù)器之前,我們可以通過jquery來獲取上傳文件的名稱,類型和尺寸大小,需要的朋友可以參考下2018-04-04
jqGrid翻頁時數(shù)據(jù)選中丟失問題的解決辦法
我在項目中使用jqGrid時,采用異步加載服務(wù)器數(shù)據(jù),例如點擊翻頁、搜索時都重新加載數(shù)據(jù)。這篇文章主要介紹了jqGrid翻頁時數(shù)據(jù)選中丟失問題,需要的朋友可以參考下2017-02-02
Jquery通過Ajax方式來提交Form表單的具體實現(xiàn)
提交Form表單的方法有很多,在本文為大家介紹下Jquery通過Ajax方式是如何提交Form表單的2013-11-11

