artdialog

发布时间:2024-12-08 08:45:38 来源:君肯网

artDialog是一个基于javascript编写的对话框组件,它拥有精致的界面与友好的接口。

如果你想在弹出的对话框里,加一个自己的按钮,来关闭自己,普通对话框可以使用以下方式:

//artdialog弹出对话框之后会返回一个dialog句柄

var

dialog

=

art.dialog(content,

ok,

cancel)

//你可以在对话框事件中通过该句柄的close方法,将对话框自己关闭。

function

closeSelf(){

dialog.close()

}

如果是弹出一个iframe对话框呢?获得的对话框句柄在是父窗体里的,需要在子窗体里使用该句柄把自己关掉。

artdialog提供了框架之间的数据传递方式,你要包含artDialog.iframeTools.js方法。

var

temp

=

{}

art.dialog.data(’temp’,

temp)

temp.dialog

=

art.dialog(’../childframe.html’)

这样你的数据就穿越了。在childframe.html的js里,你可以使用下面的方式获取自己的窗口句柄,然后关闭自己。

如何使用jqueryartDialog

var dialog = art.dialog(content, ok, cancel) //你可以在对话框事件中通过该句柄的close方法,将对话框自己关闭。 function closeSelf(){ dialog.close()} 如果是弹出一个iframe对话框呢

怎么在artdialog弹出框右上角添加最大最小化按钮

引入jQuery库,在引入jquery.artDialog.js。

// 普通调用

$.dialog({content:’hello world!’})

// 使用选择器方式,此时自动使用绑定了live click事件,同时启用follow模式

$(’#main .test’).dialog({content: ’hello world’})

为什么我的artdialog中的drag功能不能实现

通过分析关闭按钮的定义来实现其他按钮。关闭按钮是通过 html 模板定义的,定义同样在 artDialog.source.js 文件中,代码如下:

[javascript] view plain copy

artDialog._templates =

’&ltdiv &gt’

+ ’&lttable &gt’

+ ’&lttbody&gt’

+ ’&lttr&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lt/tr&gt’

+ ’&lttr&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lttd &gt’

+ ’&ltdiv &gt’

+ ’&lttable &gt’

+ ’&lttbody&gt’

+ ’&lttr&gt’

+ ’&lttd colspan=”2” &gt’

+ ’&ltdiv &gt’

+ ’&ltdiv &gt&lt/div&gt’

+’&lta onclick=”javascript:/*artDialog*/”&gt’//href paul mod

+ ’\xd7’

+ ’&lt/a&gt’

+ ’&lt/div&gt’

+ ’&lt/td&gt’

+ ’&lt/tr&gt’

+ ’&lttr&gt’

+ ’&lttd &gt’

+ ’&ltdiv &gt&lt/div&gt’

+ ’&lt/td&gt’

+ ’&lttd &gt’

+ ’&ltdiv &gt&lt/div&gt’

+ ’&lt/td&gt’

+ ’&lt/tr&gt’

+ ’&lttr&gt’

+ ’&lttd colspan=”2” &gt’

+ ’&ltdiv &gt&lt/div&gt’

+ ’&lt/td&gt’

+ ’&lt/tr&gt’

+ ’&lt/tbody&gt’

+ ’&lt/table&gt’

+ ’&lt/div&gt’

+ ’&lt/td&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lt/tr&gt’

+ ’&lttr&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lt/tr&gt’

+ ’&lt/tbody&gt’

+ ’&lt/table&gt’

+’&lt/div&gt’

这里,我们发现 aui_close 样式被定义为关闭按钮

于是,修改这里的代码,追加两个 div 变成下边的代码:

[javascript] view plain copy

artDialog._templates =

’&ltdiv &gt’

+ ’&lttable &gt’

+ ’&lttbody&gt’

+ ’&lttr&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lt/tr&gt’

+ ’&lttr&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lttd &gt’

+ ’&ltdiv &gt’

+ ’&lttable &gt’

+ ’&lttbody&gt’

+ ’&lttr&gt’

+ ’&lttd colspan=”2” &gt’

+ ’&ltdiv &gt’

+ ’&ltdiv &gt&lt/div&gt’

+’&ltdiv state=”false”&gt&lt/div&gt’

+’&ltdiv state=”false”&gt&lt/div&gt’

+’&lta onclick=”javascript:/*artDialog*/”&gt’//href paul mod

+ ’\xd7’

+ ’&lt/a&gt’

+ ’&lt/div&gt’

+ ’&lt/td&gt’

+ ’&lt/tr&gt’

+ ’&lttr&gt’

+ ’&lttd &gt’

+ ’&ltdiv &gt&lt/div&gt’

+ ’&lt/td&gt’

+ ’&lttd &gt’

+ ’&ltdiv &gt&lt/div&gt’

+ ’&lt/td&gt’

+ ’&lt/tr&gt’

+ ’&lttr&gt’

+ ’&lttd colspan=”2” &gt’

+ ’&ltdiv &gt&lt/div&gt’

+ ’&lt/td&gt’

+ ’&lt/tr&gt’

+ ’&lt/tbody&gt’

+ ’&lt/table&gt’

artdialog

+ ’&lt/div&gt’

+ ’&lt/td&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lt/tr&gt’

+ ’&lttr&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lttd &gt&lt/td&gt’

+ ’&lt/tr&gt’

+ ’&lt/tbody&gt’

+ ’&lt/table&gt’

+’&lt/div&gt’

在这里,我追加了两个 div ,样式分别定义为 aui_max 和 aui_min,具体样式请自行到相应的样式文件中修改,比如定义按钮图片之类的,这里就不细说了

在定义完成后,弹出新的窗口时,这两个按钮已经出现了,现在,我们需要对我们定义的按钮进行事件追加了

首先,我们在 close 方法附近追加一下代码,来作为最大化的方法实现

[javascript] view plain copy

max: function () {

var that = this,

DOM = that.DOM

var border = jQuery(DOM.content[0])// 获取 artDialog 窗口的 iframe 对象

var max = jQuery(DOM.max[0]) // 获取最大化按钮对象

if (max.attr(’state’) == ’false’) { // 判断是否已最大化

max.attr(’_width’, border.width()) // 记录当前窗口定义的宽度

max.attr(’_height’, border.height())// 记录当前窗口定义的高度

max.attr(’state’, ’true’) // 修改最大化按钮状态为真

this.position(0, 0) // 将窗口移动到左上角

this.size(’100%’, ’100%’) // 修改窗口大小

} else {

jQuery(DOM.border[0]).parent().parent().css(’width’, (max.attr(’_width’) * 1 + 30) + ’px’) // 修改窗口最外层 div 定义的宽度,这个 div 是窗口外层的样式窗口,比我们定义的窗口宽上 30 像素,根据使用的皮肤不同有所区别

this.size(max.attr(’_width’) + ’px’, max.attr(’_height’) + ’px’) // 将窗口大小按照已记录的宽和高进行设置

this.position(’50%’, ’50%’) // 将窗口居中

max.attr(’state’, ’false’) // 设置最大化状态为假

max.removeAttr(’_width’) // 删除已记录的宽

max.removeAttr(’_height’)// 删除已记录的高

}

return that

}

注意实际添加代码的时候,要在最后加个逗号哦,毕竟是写在 artDialog.fn 的定义对象里的内容

这里我实现的思路是这样的,首先在最大化、最小化按钮中设置一个属性 state,表示窗口是否已经最大化或最小化

然后在点击按钮的时候判断一下,如果没有则最大化,否则则还原

在事件实现方法定义完成后,我发现点击按钮并没有发生什么,所以,我们还需要将事件和方法进行关联起来,于是再次查阅代码,发现以下定义:

[javascript] view plain copy

// 同样在 artDialog.fn 定义中

// 事件代理

_addEvent: function () {

var resizeTimer,

that = this,

config = that.config,

isIE = ’CollectGarbage’ in window,

DOM = that.DOM

// 窗口调节事件

that._winResize = function () {

resizeTimer &amp&ampclearTimeout(resizeTimer)

resizeTimer = setTimeout(function () {

that._reset(isIE)

}, 40)

}

_$window.bind(’resize’, that._winResize)

// 监听点击

DOM.wrap

.bind(’click’, function (event) {

var target = event.target, callbackID

if (target.disabled) return false// IE BUG

if (target === DOM.close[0]) {

that._click(config.cancelVal)

return false

} else {

callbackID = target[_expando + ’callback’]

callbackID &amp&ampthat._click(callbackID)

}

that._ie6SelectFix()

})

.bind(’mousedown’, function () {

that.zIndex()

})

},

于是追加代码变成以下内容

[javascript] view plain copy

// 事件代理

_addEvent: function () {

var resizeTimer,

that = this,

config = that.config,

isIE = ’CollectGarbage’ in window,

DOM = that.DOM

// 窗口调节事件

that._winResize = function () {

resizeTimer &amp&ampclearTimeout(resizeTimer)

resizeTimer = setTimeout(function () {

that._reset(isIE)

}, 40)

}

_$window.bind(’resize’, that._winResize)

// 监听点击

DOM.wrap

.bind(’click’, function (event) {

var target = event.target, callbackID

if (target.disabled) return false// IE BUG

if (target === DOM.close[0]) {

that._click(config.cancelVal)

return false

} else if (target === DOM.max[0]) {

that.max()

} else if (target === DOM.min[0]) {

that.min()

} else {

callbackID = target[_expando + ’callback’]

callbackID &amp&ampthat._click(callbackID)

}

that._ie6SelectFix()

})

.bind(’mousedown’, function () {

that.zIndex()

})

},

于是发现事件被关联成功了,最后,由于不是所有窗口都需要最大化和最小化,所以在 artDialog.fn 定义中,修改 _init 定义的方法,追加以下内容

[javascript] view plain copy

config.min ? DOM.min.show() : DOM.min.hide()

config.max ? DOM.max.show() : DOM.max.hide()

修改 artDialog.defaults 定义的对象追加以下内容

[javascript] view plain copy

min: null,

max: null,

这样,窗口在打开时默认是没有最大化和最小化的,在我们需要弹出的定义中设置一下 max 、min 属性就可以显示并实现最大化、最小化了

[javascript] view plain copy

art.dialog.open(url,{

max : true,

min : true

},false)

server端当tcp_tw_recycle和tcp_timestamps都是1的时候,会检查收到数据包TCP选项字段中的的timestamp(TS Value),当来自同一个IP地址(任意源端口号)后来的数据包中TCP选项字段如果有timestamp且比前面的数据包中的timestamp小,则server不做ACK响应!

以上就是关于artdialog 弹出对话框怎么关闭自己全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

更多相关资讯

artDialog是一个基于javascript编写的对话框组件,它拥有精致的界面与友好的接口。 如果你想在弹出的对话框里,加一个自己的按钮…
查看详情
artDialog是一个基于javascript编写的对话框组件,它拥有精致的界面与友好的接口。 如果你想在弹出的对话框里,加一个自己的按钮…
查看详情
artDialog是一个基于javascript编写的对话框组件,它拥有精致的界面与友好的接口。 如果你想在弹出的对话框里,加一个自己的按钮…
查看详情
相关文章
推荐游戏
风之谷
风之谷
游戏资讯 10.5M
下载
斗罗大陆3
斗罗大陆3
游戏资讯 566.9M
下载
冠军网球
冠军网球
游戏资讯 148.1M
下载
最佳炮手
最佳炮手
游戏资讯 68.1M
下载
如梦下弦月
如梦下弦月
游戏资讯 840.1M
下载
富甲封神传
富甲封神传
游戏资讯 263.0M
下载