[Java教程]dialog获取焦点

0

2014-09-25 18:00:41

弹出层是一个iframe

openWindow: function (options) {

var url = options.url;

url += url.indexOf("?") > 0 ? "&" : "?";

url += "ran=" + Math.random();

var isScroll = options.isScroll ? 'yes' : 'no';

rcpnDetail.mainWindow = $("

rcpnDetail.mainWindow.html('')

.dialog({

width: options.width,

title: options.title,

name: options.name,

isDraggable: true,

afterClose: options.afterClose

});

}

调用自定义jquery.dialog.js

(function($) {

$.fn.dialog = function(options) {

if (this.length == 0) return null;

var method = typeof arguments[0] == "string" && arguments[0];

var args = method && Array.prototype.slice.call(arguments, 1) || arguments;

return this.each(function() {

var context = $(this).data("dialog");

if (!context) {

context = new $.dialog(this, options);

$(this).data('dialog', context);

}

if (method) context[method].apply(context, args);

else context.show();

});

};    $.dialog = function(control, options) {

var context = this;

var options = $.extend({}, $.fn.dialog.defaults, options);

options.isCreateId = options.isCreateId ? options.isCreateId : 'dialog-' + $.dialog.__count; // 唯一ID

var overlayId = options.isCreateId + '-overlay'; // 遮罩层ID

var isShow = false;

var isIe = $.browser.msie;

this.isDynamic = $(control).parent().length == 0;

var returnValue = null; //关闭窗体返回值

var barHtml = !options.isShowTitle ? '' : [

'

',

'' + options.title + '',

'' + options.closeText + '',

'

'

'

].join('');        var content = $('

var dialog = $('

$('body').append(dialog);        var resetPos = function() {

if (options.isCenter) {

var left = ($(window).width() - dialog.width()) / 2;

var top = ($(window).height() - dialog.height()) / 2;

if (top < 0) {

top = 10;

}

dialog.css({ top: top + $(document).scrollTop(), left: left + $(document).scrollLeft() });

}            if (options.isNearTrigger) {

var postion = { t: 0, l: 0, w: 0, h: 0 };

if (options.triggerElement) {

var offsetElement = $(options.triggerElement).offset();

postion = {

t: offsetElement.top,

l: offsetElement.left,

w: $(options.triggerElement).outerWidth(),

h: $(options.triggerElement).outerHeight()

};

}                if ($.isFunction(options.triggerPosition)) {

options.triggerPosition.call(context, dialog, postion);

} else {

dialog.css({ left: postion.l + postion.w, top: postion.t });

}

}

}

var init = function() {

/* 是否需要初始化背景遮罩层 */

if (options.isModal) {

$('body').append('

$('#' + overlayId).css({

'left': 0,

'top': 0,

'width': '100%',

'height': $(document).height(),

'z-index': ++$.dialog.__zindex,

'position': 'absolute'

}).hide();

}            dialog.css({

'z-index': ++$.dialog.__zindex,

'position': options.isFixed ? 'fixed' : 'absolute'

});            /* 以下代码处理框体是否可以移动 */

var mouse = { x: 0, y: 0 };            function moveDialog(event) {

var e = window.event || event;

var top = parseInt(dialog.css('top')) + (e.clientY - mouse.y);

var left = parseInt(dialog.css('left')) + (e.clientX - mouse.x);

dialog.css({ top: top, left: left });

mouse.x = e.clientX;

mouse.y = e.clientY;

};            dialog.find('.bar').mousedown(function(event) {

if (!options.isDraggable) {

return;                }

var e = window.event || event;

mouse.x = e.clientX;

mouse.y = e.clientY;

$(document).bind('mousemove', moveDialog);

});            $(document).mouseup(function(event) {

$(document).unbind('mousemove', moveDialog);

});            /* 绑定一些相关事件。 */

dialog.find('.close').bind('click', function() {

if (!isShow) return;

if (context.isDynamic) context.close();

else context.hide();

});

dialog.bind('mousedown', function() {

dialog.css('z-index', ++$.dialog.__zindex);

});

/* 修改项,添加keycode冒泡判断 2014-09-10 */

if (!$.dialog.__keydown) {

window.listenKeyDownBubble = true;

$(document).keydown(function(event, data) {

// 替换keyCode

if (data && data.keyCode) {

event.keyCode = data.keyCode;

}

if (event.keyCode == 27) {

var elements = $(".dialog:visible");

if (elements.length == 0) return false;

elements = elements.sort(function(l, r) {

if (parseInt($(l).css("z-index")) < parseInt($(r).css("z-index"))) return 1;

else return -1;

});

var current = $(elements[0])

.find("> .content > :first-child")

.data("dialog");

if (current.isDynamic) current.close();

else current.hide();

return false;

}

});

$.dialog.__keydown = true;

}

}        this.show = function() {

if ($.isFunction(options.beforeShow)) {

if (!options.beforeShow.call(context, options)) {

return;

}

}

var getOpacity = function(id) {

if (!isIe) {

return $('#' + id).css('opacity');

}                var el = document.getElementById(id);

return (undefined != el

&& undefined != el.filters

&& undefined != el.filters.alpha

&& undefined != el.filters.alpha.opacity)

? el.filters.alpha.opacity / 100 : 0.5;

}

/* 是否显示背景遮罩层 */

if (options.isModal) {

$('#' + overlayId).fadeTo('fast', getOpacity(overlayId));

}            dialog.fadeIn('fast', function() {

if ($.isFunction(options.afterShow)) {

options.afterShow.call(context, options);

}

var d = $(this).find('iframe');

if (d.length==0) {

$(this).focus();

} else {

d.one("load", function() {

this.contentWindow.focus();

});

}

returnValue = null; //清空

isShow = true;

});

resetPos();

}        this.close = function() {

if ($.isFunction(options.beforeClose)) {

if (!options.beforeClose.call(context, options)) {

return;

}

}            dialog.fadeOut('fast', function() {

$(this).remove();

isShow = false;

if ($.isFunction(options.afterClose)) {

options.afterClose.call(context, options);

}

returnValue = null; //清空

});            if (options.isModal) {

$('#' + overlayId).fadeOut('fast', function() { $(this).remove(); });

}            delete context;

}        this.hide = function() {

if (!isShow) {

return;

}            if ($.isFunction(options.beforeHide)) {

if (!options.beforeHide.call(context, options)) {

return;

}

}            dialog.fadeOut('fast', function() {

if ($.isFunction(options.afterHide)) {

options.afterHide.call(context, options);

}

});            if (options.isModal) {

$('#' + overlayId).fadeOut('fast');

}            isShow = false;

}        //设置窗体返回值

this.setReturnValue = function(value) {

returnValue = value;

}        //获取窗体放回值

this.getReturnValue = function() {

return returnValue;

}        init.call(this);        $.dialog.__zindex++;

$.dialog.__count++;

}    $.dialog.__zindex = 500;

$.dialog.__count = 1;

$.dialog.__keydown = false;    $.fn.dialog.defaults = {

width: "auto", // 默认值。

name: "", // dialog名称

title: '标题', // 标题文本,若不想显示title请通过CSS设置其display为none

isShowTitle: true, // 是否显示标题栏。

closeText: ' ', // 关闭按钮文字,若不想显示关闭按钮请通过CSS设置其display为none

isDraggable: false, // 是否移动

isModal: true, // 是否是模态对话框

isCenter: true, // 是否居中。

isFixed: false, // 是否跟随页面滚动。

isCreateId: false, // 对话框的id,若为false,则由系统自动产生一个唯一id。

isNearTrigger: false, // 是否跟随触发对象

triggerElement: null, // 触发对象   id or element

triggerPosition: null, // 调节弹窗位置事件

beforeShow: null, // 显示前触发事件

afterShow: null, // 显示后触发事件

beforeClose: null, // 关闭前触发事件

afterClose: null, // 关闭后触发事件

beforeHide: null, // 隐藏前触发事件

afterHide: null // 隐藏后触发事件

};})(jQuery);

$.getDialogByChildWindow= function(dialogName) {

return parent.$(".dialog[name='" + dialogName + "'] > .content > :first-child ");

}

在页面点击click

$("#btnBillProcess").click(function () {

rcpnDetail.openWindow({

width: '970px',

name: "BillDeal",

height: '600px',

title: '账务处理',

url: '@Url.Action("BillDeal", "Cashier")?@UrlParams.PNAME_MULTY_BILLS=@Model.BillID&viewHis=@ViewBag.tableType'

});

});

弹出层打开自动获取焦点

var d = $(this).find('iframe');

if (d.length==0) {

$(this).focus();

} else {

d.one("load", function() {

this.contentWindow.focus();

});

}

本文网址:http://www.shaoqun.com/a/101091.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

0

java获取焦点_[Java教程]dialog获取焦点相关推荐

  1. js字符串如何拼接java代码_[Java教程]js拼接字符串传值,子窗口传值

    [Java教程]js拼接字符串传值,子窗口传值 0 2015-10-26 21:00:15 避免下次再去查资料,记录一下 1.拼接字符串传值 "UpdateState?ids=" ...

  2. ie8不兼容java项目_[Java教程]ie8以下不兼容document.getElementsByName解决方法

    [Java教程]ie8以下不兼容document.getElementsByName解决方法 0 2016-09-13 19:00:06 在IE8以认为只有文本标签才有name属性的,一些元素标签用d ...

  3. Java折叠_[Java教程]Jquery中菜单的展开和折叠

    [Java教程]Jquery中菜单的展开和折叠 0 2018-08-15 16:03:38 标签内容 您好:alee 宿舍管理员 密码管理 修改密码 宿舍管理 学生宿舍查询 学生宿舍新增 学生宿舍分配 ...

  4. java 矢量_[Java教程]矢量图标的使用

    [Java教程]矢量图标的使用 0 2015-11-20 14:00:42 前几年已经开始流行icon font,很多项目为了节省网站空间,实现开发时灵活的图标大小和颜色等样式修改都已经采用icon ...

  5. java 电子相册_[Java教程]电子相册特效

    [Java教程]电子相册特效 0 2015-05-17 20:00:20 引言 初入前端这行不久,对很多东西还是很陌生,页面布局.合理使用Html标签.CSS属性.js书写习惯等等还都不是很熟悉,所以 ...

  6. jsp java 后台_[Java教程]用JSP做后台管理系统

    [Java教程]用JSP做后台管理系统 0 2015-10-13 23:00:25 突然很开心,紧张了好几天的项目终于不那么赶了. 我是一个比别人慢半拍的人,所以一定要比别人多付出一点努力. 今天在进 ...

  7. java侧边栏_[Java教程]js实现的侧边栏展开收缩效果

    [Java教程]js实现的侧边栏展开收缩效果 0 2016-02-12 16:00:09 js实现的侧边栏展开收缩效果: 在很多应用中,尤其是客服系统一般具有这样的效果,那就是默认状态下,会折叠在网页 ...

  8. windows java配置_菜鸟教程 windows 配置java的环境变量

    第一步:下载java的JDK 放在你们的D盘下面(其实C盘也一样),然后傻瓜是安装,安装路径一般默认放在 C:\Program Files\Java,这个不需要管. 第二步:直接上图 ... 看懂了吗 ...

  9. 远行星号java 出错_按照教程搞了一条新船,但是出错了,求大神看看怎么回事...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 11069 [Thread-5] ERROR com.fs.starfarer.combat.D - java.lang.IllegalArgumentE ...

最新文章

  1. SQL SERVER 数据库清空语句 忽略外键 触发器 等
  2. memcache调整value大小限制
  3. linux中用参数代替键盘输入,Linux终端中使用上一命令减少键盘输入
  4. eclipse中java环境配置
  5. HDU-4631 Sad Love Story 平面最近点对
  6. 【Elasticsearch】Elasticsearch bouncing result 问题
  7. storm-starter 例子学习
  8. oracle忽略损坏表空间,Oracle表空间文件损坏后的排查及解决
  9. 《C Primer Plus(第6版)中文版》一2.12 编程练习
  10. python中用rdflib生成rdf,用sparql查询
  11. nodejs 之创建文件
  12. matlab自适应高斯核
  13. 解答篇:金蝶K3wise总账凭证页面查询不到科目分录核算项目
  14. 使用国内的镜像源搭建 kubernetes(k8s)集群
  15. 网络通信安全部分笔记二
  16. 2015年中国数据库技术大会(DTCC)PPT合集
  17. linux修改X2APIC参数,Linux 開機參數 intremap=no_x2apic_optout
  18. php面向对象--php面向对象ppt
  19. 2019湖南多校3 What Goes Up Must Come Down (树状数组)
  20. jenkins邮件使用自定义变量

热门文章

  1. 分治——南蛮图腾(洛谷 P1498)
  2. Tensorflow--图
  3. 今晚8点直播丨 经典知识库:性能优化那些事
  4. 直播预告丨MySQL中的索引探究
  5. 诊断案例:Failed parse elapsed time引发db time过高的案例
  6. 看完微信抢红包算法你就明白,为啥你不是手气最佳
  7. 云图说|分布式事务管理DTM:“买买买”背后的小帮手
  8. 鸿蒙轻内核定时器Swtmr:不受硬件和数量限制,满足用户需求
  9. 华为云PB级数据库GaussDB(for Redis)揭秘第十期:GaussDB(for Redis)迁移系列(上)
  10. 【文末彩蛋】数据仓库服务 GaussDB(DWS)单点性能案例集锦