123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833 |
- // 扩展 $.browser
- function uaMatch(a){a=a.toLowerCase();var b=rwebkit.exec(a)||ropera.exec(a)||rmsie.exec(a)||a.indexOf("compatible")<0&&rmozilla.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}}jQuery.extend({browser:function(){var e={},f=window.navigator.userAgent,g=uaMatch(f);return g.browser&&(e[g.browser]=!0,e.version=g.version),{browser:e}}});
- (function($) {
- var cachedata = {};
- var arrweebox = new Array();
- var weebox = function(content,options) {
- var self = this;
- this.dh = null;
- this.mh = null;
- this.dc = null;
- this.dt = null;
- this.db = null;
- this.selector = null;
- this.ajaxurl = null;
- this.options = null;
- this._dragging = false;
- this._content = content || '';
- this._options = options || {};
- this.ajaxresult = null;
- this._defaults = {
- boxid: null,
- boxclass: null,
- cache: false,
- type: 'dialog',
- title: '',
- width: 0,
- height: 0,
- timeout: 0,
- draggable: true,
- modal: true,
- focus: null,
- blur: null,
- position: 'center',
- topheight:120,
- overlay: 30,
- showTitle: true,
- showClose: true,
- showButton: true,
- showCancel: true,
- showHeader: true,
- showOk: true,
- isFull:true,
- isCloseToHide:false,
- okBtnName: '确定',
- cancelBtnName: '取消',
- contentType: 'text',
- contentChange: false,
- clickClose: false,
- zIndex: 999,
- animate: '',
- showAnimate:'',
- hideAnimate:'',
- onclose: null,
- onopen: null,
- onready:null,
- oncancel: null,
- onok: null,
- suggest:{url:'',tele:'',vele:'',fn:null},
- ajaxdata:null,
- select:{url:'',type:'radio', tele:'',vele:'',width:120,search:false,fn:null}
- };
- //初始化选项
- this.initOptions = function() {
- self._options = self._options || {};
- self._options.animate = self._options.animate || '';
- self._options.showAnimate = self._options.showAnimate || self._options.animate;
- self._options.hideAnimate = self._options.hideAnimate || self._options.animate;
- self._options.type = self._options.type || 'dialog';
- self._options.title = self._options.title || '';
- self._options.boxclass = self._options.boxclass || 'wee'+self._options.type;
- self._options.contentType = self._options.contentType || "";
- if (self._options.contentType == "") {
- self._options.contentType = (self._content.substr(0,1) == '#') ? 'selector' : 'text';
- }
-
- self.options = $.extend({}, self._defaults, self._options);
- self._options = null;
- self._defaults = null;
- };
- //初始化弹窗Box
- this.initBox = function() {
- var html = '';
- switch(self.options.type) {
- case 'alert':
- case 'select':
- case 'dialog':
- html = '<div class="weedialog">' +
- ' <div class="dialog-header">' +
- ' <div class="dialog-title"></div>' +
- ' <a href="javascript:;" onclick="return false" class="dialog-close"></a>' +
- ' </div>' +
- ' <div class="dialog-content"></div>' +
- ' <div class="dialog-button">' +
- ' <input type="button" class="btn btn-primary dialog-ok" value="确定">' +
- ' <input type="button" class="btn dialog-cancel" value="取消">' +
- ' </div>' +
- '</div>';
- break;
- case 'custom':
- case 'suggest':
- html = '<div><div class="dialog-content"></div></div>';
- break;
- }
- self.dh = $(html).appendTo('body').hide().css({
- position: 'absolute',
- overflow: 'hidden',
- zIndex: self.options.zIndex
- });
- self.dc = self.find('.dialog-content');
- self.dt = self.find('.dialog-title');
- self.db = self.find('.dialog-button');
- self.dhh = self.find('.dialog-header');
- if (self.options.boxid) {
- self.dh.attr('id', self.options.boxid);
- }
- if (self.options.boxclass) {
- self.dh.addClass(self.options.boxclass);
- }
- if (self.options.height>0) {
- self.dc.css('height', self.options.height);
- }
- if (self.options.width>0) {
- self.dh.css('width', self.options.width);
- }
- self.dh.bgiframe();
- }
- //初始化遮照
- this.initMask = function() {
- if (self.options.modal) {
- if ($.browser.msie) {
- h= document.compatMode == "CSS1Compat" ? document.documentElement.clientHeight : document.body.clientHeight;
- w= document.compatMode == "CSS1Compat" ? document.documentElement.clientWidth : document.body.clientWidth;
- } else {
- h= self.bheight();
- w= self.bwidth();
- }
- self.mh = $("<div class='dialog-mask'></div>")
- .appendTo('body').hide().css({
- width: w,
- height: h,
- zIndex: self.options.zIndex-1
- }).bgiframe();
- }
- }
- //初始化弹窗内容
- this.initContent = function(content) {
- self.dh.find(".dialog-ok").val(self.options.okBtnName);
- self.dh.find(".dialog-cancel").val(self.options.cancelBtnName);
- if (self.options.title == '') {
- //self.dt.hide();
- //self.dt.html(self._titles[self._options.type] || '');
- } else {
- self.dt.html(self.options.title);
- }
- if (!self.options.showTitle) {
- self.dt.hide();
- }
- if(self.options.draggable){
- self.dt.css({"cursor":"move"});
- }
- if(!self.options.showHeader){
- self.dhh.remove();
- }
- if(!self.options.showClose){
- self.dhh.find('.dialog-close').hide();
- }
- if (!self.options.showCancel) {
- self.dhh.find('.dialog-cancel').hide();
- }
- if (!self.options.showButton) {
- self.dh.find('.dialog-button').hide();
- }
-
- if (!self.options.showOk) {
- self.dh.find(".dialog-ok").hide();
- }
- if (self.options.type == 'suggest') {//例外处理
- self.hide();
- //self.options.clickClose = true;
- $(self.options.suggest.tele).unbind('keyup').keyup(function(){
- var val = $.trim(this.value);
- var data = null;
- for(key in cachedata) {
- if (key == val) {
- data = cachedata[key];
- }
- }
- if (data === null) {
- $.ajax({
- type: "GET",
- data:{q:val},
- url: self.options.suggest.url || self._content,
- success: function(res){data = res;},
- dataType:'json',
- async: false
- });
- }
- cachedata[val] = data;
- var html = '';
- for(key in data) {
- html += '<li>'+data[key].name+'</li>';
- }
-
- self.show();
- self.setContent(html);
-
- self.find('li').click(function(){
- var i = self.find('li').index(this);
- $(self.options.suggest.tele).val(data[i].name);
- $(self.options.suggest.vele).val(data[i].id);
- if (typeof self.options.suggest.fn == 'function') {
- fn(data[i]);
- }
- self.hide();
- });
- });
- } else if(self.options.type == 'select') {
- var type = self.options.select.type || 'radio';
- var url = self.options.select.url || self._content || '';
- var search = self.options.select.search || false;
- $.ajax({
- type: "GET",
- url: url,
- success: function(data){
- var html = '';
- if (data === null) {
- html = '没有数据';
- } else {
- if (search) {
- html += '<div class="wsearch"><input type="text"><input type="button" value="查询"></div>';
- }
- var ovals = $.trim($(self.options.select.vele).val()).split(',');//原值
- html += '<div class="wselect">';
- for(key in data) {
- var checked = ($.inArray(data[key].id, ovals)==-1)?'':'checked="checked"';
- html += '<li><label><input name="wchoose" '+checked+' type="'+type+'" value="'+data[key].id+'">'+data[key].name+'</label></li>';
- }
- html += '</div>';
- }
- self.show();
- self.setContent(html);
- self.find('li').width(self.options.select.width);
- self.find('.wsearch input').keyup(function(){
- var v = $.trim(this.value);
- self.find('li').hide();
- for(i in data) {
- if (data[i].id==v || data[i].name.indexOf(v)!=-1) {
- self.find('li:eq('+i+')').show();
- }
- }
- });
- self.setOnok(function(){
- if (type=='radio') {
- if (self.find(':checked').length == 0) {
- $(self.options.select.tele).val('');
- $(self.options.select.vele).val('');
- } else {
- var i = self.find(':radio[name=wchoose]').index(self.find(':checked')[0]);
- $(self.options.select.tele).val(data[i].name);
- $(self.options.select.vele).val(data[i].id);
- if (typeof self.options.select.fn == 'function') fn(data[i]);
- }
- } else {
- if (self.find(':checked').length == 0) {
- $(self.options.select.tele).val('');
- $(self.options.select.vele).val('');
- } else {
- var temps=[],ids=[],names=[];
- self.find(':checked').each(function(){
- var i = self.find(':checkbox[name=wchoose]').index(this);
- temps.push(data[i]);
- ids.push(data[i].id);
- names.push(data[i].name);
- });
- $(self.options.select.tele).val(names.join(","));
- $(self.options.select.vele).val(ids.join(","));
- if (typeof self.options.select.fn == 'function') fn(temps);
- }
- }
- self.close();
- });
- },
- dataType:'json'
- });
- } else {
- if (self.options.contentType == "selector") {
- self.show();
- self.selector = self._content;
- self._content = $(self.selector).html();
- self.setContent(self._content);
- //if have checkbox do
- var cs = $(self.selector).find(':checkbox');
- self.dc.find(':checkbox').each(function(i){
- this.checked = cs[i].checked;
- });
- $(self.selector).empty();
- self.focus();
- self.onopen();
- } else if (self.options.contentType == "ajax") {
- self.ajaxurl = self._content;
- self.show();
- self.setLoading();
- self.dh.find(".dialog-button").hide();
- if (self.options.cache == false) {
- if (self.ajaxurl.indexOf('?') == -1) {
- self.ajaxurl += "?_t="+Math.random();
- } else {
- self.ajaxurl += "&_t="+Math.random();
- }
- }
- if(self.options.ajaxdata == null)
- {
- $.get(self.ajaxurl,function(data){
- self._content = data;
- self.show();
- self.setContent(self._content);
- self.focus();
- self.onopen();
- //计算高度
- self.setTopPosition();
- });
- }
- else
- {
- $.post(self.ajaxurl,self.options.ajaxdata,function(result) {
- self._content = result.html;
- delete result.html;
- self.ajaxresult = result;
- self.show();
- self.setContent(self._content);
- self.focus();
- self.onopen();
- },"json");
- }
- } else if (self.options.contentType == "iframe") { /*加入iframe使程序可以直接引用其它页面 by ePim*/
- var html = '<style type="text/css">';
- html += ('\n.dialog-box .dialog-content{padding:0px;}');
- html += ('\n</style>');
- html += ('<iframe class="dialogIframe" src="'+self._content+'" width="100%" height="100%" frameborder="0"></iframe>');
- self.show();
- self.setContent(html);
- self.onopen();
- } else {
- self.show();
- self.setContent(self._content);
- self.focus();
- self.onopen();
- }
- }
- self.setCenterPosition();
- }
- //初始化弹窗事件
- this.initEvent = function() {
- self.dh.find(".dialog-close,.dialog-cancel, .dialog-ok").unbind('click').click(function(){self.close()});
- if (typeof(self.options.onok) == "function") {
- self.dh.find(".dialog-ok").unbind('click').click(function(){self.options.onok(self)});
- }
- if (typeof(self.options.oncancel) == "function") {
- self.dh.find(".dialog-cancel").unbind('click').click(function(){self.options.oncancel(self)});
- }
- if (self.options.timeout>0) {
- window.setTimeout(self.close, (self.options.timeout * 1000));
- }
- this.drag();
- }
- //设置onok事件
- this.setOnok = function(fn) {
- self.dh.find(".dialog-ok").unbind('click');
- if (typeof(fn)=="function") self.dh.find(".dialog-ok").click(function(){fn(self)});
- }
- //设置onOncancel事件
- this.setOncancel = function(fn) {
- self.dh.find(".dialog-cancel").unbind('click');
- if (typeof(fn)=="function") self.dh.find(".dialog-cancel").click(function(){fn(self)});
- }
- //设置onOnclose事件
- this.setOnclose = function(fn) {
- self.options.onclose = fn;
- }
- //弹窗拖拽
- this.drag = function() {
- if (self.options.draggable && self.options.showTitle) {
- self.dh.find('.dialog-header').mousedown(function(event){
- var h = this;
- var o = document;
- var ox = self.dh.position().left;
- var oy = self.dh.position().top;
- var mx = event.clientX;
- var my = event.clientY;
- var width = self.dh.width();
- var height = self.dh.height();
- var bwidth = self.bwidth();
- var bheight = self.bheight();
- if(h.setCapture) {
- h.setCapture();
- }
- $(document).mousemove(function(event){
- if (window.getSelection) {
- window.getSelection().removeAllRanges();
- } else {
- document.selection.empty();
- }
- //TODO
- var left = Math.max(ox+event.clientX-mx, 0);
- var top = Math.max(oy+event.clientY-my, 0);
- var left = Math.min(left, bwidth-width);
- var top = Math.min(top, bheight-height);
- self.dh.css({left: left, top: top});
- }).mouseup(function(){
- if(h.releaseCapture) {
- h.releaseCapture();
- }
- $(document).unbind('mousemove');
- $(document).unbind('mouseup');
- });
- });
- }
- }
- //打开前的回弹函数
- this.onopen = function() {
- if (typeof(self.options.onopen) == "function") {
- self.options.onopen(self);
- }
- }
- //增加一个按钮
- this.addButton = function(opt) {
- opt = opt || {};
- opt.title = opt.title || 'OK';
- opt.bclass = opt.bclass || 'dialog-btn1';
- opt.fn = opt.fn || null;
- opt.index = opt.index || 0;
- var btn = $('<input type="button" class="'+opt.bclass+'" value="'+opt.title+'">').click(function(){
- if (typeof opt.fn == "function") opt.fn(self);
- });
- if (opt.index < self.db.find('input').length) {
- self.db.find('input:eq('+opt.index+')').before(btn);
- } else {
- self.db.append(opt);
- }
- }
- //显示弹窗
- this.show = function() {
- if (self.options.showButton) {
- self.dh.find('.dialog-button').show();
- }
- if (self.options.position == 'center') {
- self.setCenterPosition();
- }
- else if(self.options.position == 'top') {
- self.setTopPosition();
- } else {
- self.setElementPosition();
- }
- if (typeof self.options.showAnimate == "string") {
- if (self.options.animate) {
- self.dh.show(self.options.animate);
- } else {
- self.dh.show();
- }
- } else {
- self.dh.animate(self.options.showAnimate.animate, self.options.showAnimate.speed);
- }
- if (self.mh) {
- self.mh.show();
- }
- }
- this.hide = function(fn) {
- if (typeof self.options.hideAnimate == "string") {
- self.dh.hide(self.options.animate, fn);
- } else {
- self.dh.animate(self.options.hideAnimate.animate, self.options.hideAnimate.speed, "", fn);
- }
- }
- //设置弹窗焦点
- this.focus = function() {
- if (self.options.focus) {
- self.dh.find(self.options.focus).focus();//TODO IE中要两次
- self.dh.find(self.options.focus).focus();
- } else {
- self.dh.find('.dialog-cancel').focus();
- }
- }
- //在弹窗内查找元素
- this.find = function(selector) {
- return self.dh.find(selector);
- }
- //设置加载加状态
- this.setLoading = function() {
- self.dh.find(".dialog-button").hide();
- self.setContent('<div class="dialog-loading"></div>',true);
- }
- this.setWidth = function(width) {
- self.dh.width(width);
- }
- //设置标题
- this.setTitle = function(title) {
- self.dt.html(title);
- }
- //取得标题
- this.getTitle = function() {
- return self.dt.html();
- }
- //设置内容
- this.setContent = function(content,isLoading) {
- self.dc.html(content);
- if (self.options.height>0) {
- self.dc.css('height', self.options.height);
- } else {
- self.dc.css('height','auto');
- }
- if (self.options.width>0) {
- self.dh.css('width', self.options.width);
- } else {
- self.dh.css('width','');
- }
- if (self.options.showButton) {
- self.dh.find(".dialog-button").show();
- }
-
- if (self.dc.height() < 60) {
- self.dc.height(60);
- }
-
- if(isLoading !== true)
- {
- self.dc.ready(function(){
- if(self.options.isFull)
- self.dc.height(self.dc.get(0).scrollHeight);
-
- if (self.options.onready != null)
- self.options.onready(self);
- });
- }
- }
- //取得内容
- this.getContent = function() {
- return self.dc.html();
- }
- //使能按钮
- this.disabledButton = function(btname, state) {
- self.dh.find('.dialog-'+btname).attr("disabled", state);
- }
- //隐藏按钮
- this.hideButton = function(btname) {
- self.dh.find('.dialog-'+btname).hide();
- }
- //显示按钮
- this.showButton = function(btname) {
- self.dh.find('.dialog-'+btname).show();
- }
- //显示关闭
- this.showClose = function(btname) {
- self.dhh.find('.dialog-'+btname).show();
- }
- //设置按钮标题
- this.setButtonTitle = function(btname, title) {
- self.dh.find('.dialog-'+btname).val(title);
- }
- //操作完成
- this.next = function(opt) {
- opt = opt || {};
- opt.title = opt.title || self.getTitle();
- opt.content = opt.content || "";
- opt.okname = opt.okname || "确定";
- opt.width = opt.width || 260;
- opt.onok = opt.onok || self.close;
- opt.onclose = opt.onclose || null;
- opt.oncancel = opt.oncancel || null;
- opt.hideCancel = opt.hideCancel || true;
- self.setTitle(opt.title);
- self.setButtonTitle("ok", okname);
- self.setWidth(width);
- self.setOnok(opt.onok);
- self.show();
- if (opt.content != "") self.setContent(opt.content);
- if (opt.hideCancel) self.hideButton("cancel");
- if (typeof(opt.onclose) == "function") self.setOnclose(opt.onclose);
- if (typeof(opt.oncancel) == "function") self.setOncancel(opt.oncancel);
- }
- //关闭弹窗
- this.close = function(n) {
- if(self.options.isCloseToHide)
- {
- self.hide();
- self.mh.hide();
- return;
- }
-
- if (typeof(self.options.onclose) == "function") {
- self.options.onclose(self);
- }
- if (self.options.contentType == 'selector') {
- if (self.options.contentChange) {
- //if have checkbox do
- var cs = self.find(':checkbox');
- $(self.selector).html(self.getContent());
- if (cs.length > 0) {
- $(self.selector).find(':checkbox').each(function(i){
- this.checked = cs[i].checked;
- });
- }
- } else {
- $(self.selector).html(self._content);
- }
- } else if(self.options.contentType == "iframe") {
- var iframe = self.dh.find(".dialogIframe");
- iframe.removeAttr("src");
- }
- //设置关闭后的焦点
- if (self.options.blur) {
- $(self.options.blur).focus();
- }
- //从数组中删除
- for(i=0;i<arrweebox.length;i++) {
- if (arrweebox[i].dh.get(0) == self.dh.get(0)) {
- arrweebox.splice(i, 1);
- break;
- }
- }
- self.hide();
- self.dh.remove();
- if (self.mh) {
- self.mh.remove();
- }
- }
- //取得遮照高度
- this.bheight = function() {
- if ($.browser.msie && $.browser.version < 7) {
- var scrollHeight = Math.max(
- document.documentElement.scrollHeight,
- document.body.scrollHeight
- );
- var offsetHeight = Math.max(
- document.documentElement.offsetHeight,
- document.body.offsetHeight
- );
-
- if (scrollHeight < offsetHeight) {
- return $(window).height();
- } else {
- return scrollHeight;
- }
- } else {
- return $(document).height();
- }
- }
- //取得遮照宽度
- this.bwidth = function() {
- if ($.browser.msie && $.browser.version < 7) {
- var scrollWidth = Math.max(
- document.documentElement.scrollWidth,
- document.body.scrollWidth
- );
- var offsetWidth = Math.max(
- document.documentElement.offsetWidth,
- document.body.offsetWidth
- );
-
- if (scrollWidth < offsetWidth) {
- return $(window).width();
- } else {
- return scrollWidth;
- }
- } else {
- return $(document).width();
- }
- }
- //将弹窗显示在中间位置
- this.setCenterPosition = function() {
- var wnd = $(window), doc = $(document),
- pTop = doc.scrollTop(), pLeft = doc.scrollLeft();
- pTop += (wnd.height() - self.dh.height()) / 2;
- pLeft += (wnd.width() - self.dh.width()) / 2;
- self.dh.css({top: pTop, left: pLeft});
- }
-
- this.setTopPosition = function() {
- var wnd = $(window), doc = $(document),
- pTop = doc.scrollTop(), pLeft = doc.scrollLeft();
- pTop += self.options.topheight;
- pLeft += (wnd.width() - self.dh.width()) / 2;
- self.dh.css({top: pTop, left: pLeft});
- }
-
- //根据元素设置弹窗显示位置
- this.setElementPosition = function() {
- var trigger = $(self.options.position.refele);
- var reftop = self.options.position.reftop || 0;
- var refleft = self.options.position.refleft || 0;
- var adjust = (typeof self.options.position.adjust=="undefined")?true:self.options.position.adjust;
- var top = trigger.offset().top + trigger.height();
- if(self.options.addtop != null && self.options.addtop != 0)
- top += self.options.addtop;
- var left = trigger.offset().left;
- var docWidth = document.documentElement.clientWidth || document.body.clientWidth;
- var docHeight = document.documentElement.clientHeight|| document.body.clientHeight;
- var docTop = document.documentElement.scrollTop|| document.body.scrollTop;
- var docLeft = document.documentElement.scrollLeft|| document.body.scrollLeft;
- var docBottom = docTop + docHeight;
- var docRight = docLeft + docWidth;
- if (adjust && left + self.dh.width() > docRight) {
- left = docRight - self.dh.width() - 1;
- }
- if (adjust && top + self.dh.height() > docBottom) {
- top = docBottom - self.dh.height() - 1;
- }
- left = Math.max(left+refleft, 0);
- top = Math.max(top+reftop, 0);
- self.dh.css({top: top, left: left});
- }
- this.initOptions();
- this.initMask();
- this.initBox();
- this.initContent();
- this.initEvent();
- }
-
- var weeboxs = function() {
- var self = this;
- this._onbox = false;
- this._opening = false;
- this.zIndex = 999;
- this.length = function() {
- return arrweebox.length;
- }
- this.open = function(content, options) {
- self._opening = true;
- if (typeof(options) == "undefined") {
- options = {};
- }
-
- if (options.boxid) {
- for(var i=0; i<arrweebox.length; i++) {
- if (arrweebox[i].dh.attr('id') == options.boxid) {
- arrweebox[i].close();
- break;
- }
- }
- }
- options.zIndex = self.zIndex;
- self.zIndex += 10;
-
- var box = new weebox(content, options);
- box.dh.click(function(){self._onbox = true;});
- arrweebox.push(box);
- /*-----解决在ie下页面过大时出现部分阴影没有覆盖的问题-----by ePim*/
- if (box.options.position != "center" && box.options.position != "top"){
- box.setElementPosition();
- }
- if (box.mh) {
- box.mh.css({
- width: box.bwidth(),
- height: box.bheight()
- });
- }
- /*-----解决在ie下页面过大时出现部分没有遮罩的问题-----by ePim(WanJiDong@gmail.com)*/
- return box;
- }
- //关闭最上层窗体,程序调用方法:jQuery.weeboxs.close();
- this.close = function(){
- var closingBox = this.getTopBox();
- if(false!=closingBox) {
- closingBox.close();
- }
- }
-
- this.getTopBox = function() {
- if (arrweebox.length>0) {
- return arrweebox[arrweebox.length-1];
- } else {
- return false;
- }
- }
-
- $(window).scroll(function() {
- if (arrweebox.length > 0) {
- for(i=0;i<arrweebox.length;i++) {
- var box = arrweebox[i];//self.getTopBox();
- if (box.options.position == "center") {
- box.setCenterPosition();
- }
- else if(box.options.position == "top") {
- box.setTopPosition();
- }
- else{
- box.setElementPosition();
- }
- if (box.mh) {
- box.mh.css({
- width: box.bwidth(),
- height: box.bheight()
- });
- }
- }
- }
- }).resize(function() {
- if (arrweebox.length > 0) {
- var box = self.getTopBox();
- if (box.options.position == "center") {
- box.setCenterPosition();
- }
- else if(box.options.position == 'top') {
- box.setTopPosition();
- }
-
- if (box.mh) {
- box.mh.css({
- width: box.bwidth(),
- height: box.bheight()
- });
- }
- }
- });
- $(document).click(function(event) {
- if (event.button==2) return true;
- if (arrweebox.length>0) {
- var box = self.getTopBox();
- if(!self._opening && !self._onbox && box.options.clickClose) {
- box.close();
- }
- }
- self._opening = false;
- self._onbox = false;
- });
- }
- $.extend({weeboxs: new weeboxs()});
- })(jQuery);
|