java获取焦点_[Java教程]dialog获取焦点

[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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值