请问artdialog.open()打开的窗口,怎么给他的关闭按钮绑定一个函数,谢谢

iverhan 2015-07-29 03:14:10
我用art.dialog.open() 打开一个窗口, 现在的需求是当点击这个窗口的关闭按钮时,弹出art.dialog.confirm()似的确定取消对话框, 点击确定就执行某些操作,然后关闭窗口,点击取消就取消关闭, 请问怎么能把这个函数与关闭窗口关联上,谢谢
...全文
1314 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyseapp 2017-11-10
  • 打赏
  • 举报
回复
找打了解决方法,像这种完善的插件一般都会有相应的事件的,我首先确定自己的artDialog插件的版本是v6.02版,然后翻看开发文档,发现了这么个属性

这个属性能够在点击右上角的关闭按钮时,执行一个函数。可以起到判断的作用
最终能达到想要的额效果,代码示例:

然后找到v5.0.4版本中有一个差不多的属性是
flyseapp 2017-11-10
  • 打赏
  • 举报
回复
也是一样遇到问题,结果发现楼主没贴解决方案啊
zhixiaoqian 2016-11-22
  • 打赏
  • 举报
回复
楼主,最后怎么解决的,我也遇到这个问题了
零七九三 2016-03-08
  • 打赏
  • 举报
回复
不需要曲线救国,事实上artdialog有这个事件的调用
iverhan 2015-08-07
  • 打赏
  • 举报
回复
终于用曲线的方法实线了, 先return false,再在confirm里实现
iverhan 2015-08-06
  • 打赏
  • 举报
回复
引用 4 楼 jikeytang 的回复:
核心的代码是这段:

cancel: function () {
    if(confirm('Are you sure')){
        alert(1);
    } else {
        alert(2);
    }
    //alert('你点了取消按钮')
}
完整的例子在这,github上的这个页面:aui-artDialog-9fd667e/test/show.html

<!doctype html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<title>test</title>
</head>
<body>
<button data-event="test">open dialog</button>
<script src="../lib/sea.js"></script>
<script>
seajs.config({
  alias: {
    "jquery": "jquery-1.10.2.js"
  }
});
</script>

<script>
seajs.use(['jquery', '../src/dialog'], function ($, dialog) {


	$('button[data-event=test]').on('click', function () {
		var d = dialog({
			title: '消息',
			content: '风吹起的青色衣衫,夕阳里的温暖容颜,你比以前更加美丽,像盛开的花<br>——许巍《难忘的一天》',
			okValue: '确 定',
			ok: function () {
				var that = this;
				setTimeout(function () {
					that.title('提交中..');
				}, 2000);
				return false;
			},
			cancelValue: '取消',
			cancel: function () {
                if(confirm('Are you sure')){
                    alert(1);
                } else {
                    alert(2);
                }
				//alert('你点了取消按钮')
			}
		});

		d.show();
	});

});
</script>
</body>
</html>
.................................................................

					window.parent.art.dialog.open(test.html, {
							id : "dialog1",
							title: '写邮件',
							width: 800,
							height: 500,
							resize: false,
							lock: true,    // 是否锁屏
							background: '#000',   // 遮罩颜色
							opacity: .5,    // 遮罩透明度
							duration: 100,   // 遮罩透明度渐变动画速度
							//close:    function() {
							//	console.log("ok");
							//	window.parent.art.dialog.confirm("test", function() {
							//		console.log('ok');
							//	})
							//}


							cancel: function () {
								if(window.parent.art.dialog.confirm('Are you sure')){
									window.parent.art.dialog.alert("ok");
								} else {
									window.parent.art.dialog.alert("not ok");
								}
								window.parent.art.dialog.alert('你点了取消按钮')
							}


						}, false);
iverhan 2015-08-06
  • 打赏
  • 举报
回复
引用 4 楼 jikeytang 的回复:
核心的代码是这段:

cancel: function () {
    if(confirm('Are you sure')){
        alert(1);
    } else {
        alert(2);
    }
    //alert('你点了取消按钮')
}
完整的例子在这,github上的这个页面:aui-artDialog-9fd667e/test/show.html

<!doctype html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<title>test</title>
</head>
<body>
<button data-event="test">open dialog</button>
<script src="../lib/sea.js"></script>
<script>
seajs.config({
  alias: {
    "jquery": "jquery-1.10.2.js"
  }
});
</script>

<script>
seajs.use(['jquery', '../src/dialog'], function ($, dialog) {


	$('button[data-event=test]').on('click', function () {
		var d = dialog({
			title: '消息',
			content: '风吹起的青色衣衫,夕阳里的温暖容颜,你比以前更加美丽,像盛开的花<br>——许巍《难忘的一天》',
			okValue: '确 定',
			ok: function () {
				var that = this;
				setTimeout(function () {
					that.title('提交中..');
				}, 2000);
				return false;
			},
			cancelValue: '取消',
			cancel: function () {
                if(confirm('Are you sure')){
                    alert(1);
                } else {
                    alert(2);
                }
				//alert('你点了取消按钮')
			}
		});

		d.show();
	});

});
</script>
</body>
</html>
window.parent.art.dialog.open(test, { id : "dialog1", title: '写邮件', width: 800, height: 500, resize: false, lock: true, // 是否锁屏 background: '#000', // 遮罩颜色 opacity: .5, // 遮罩透明度 duration: 100, // 遮罩透明度渐变动画速度 //close: function() { // console.log("ok"); // window.parent.art.dialog.confirm("test", function() { // console.log('ok'); // }) //} cancel: function () { if(window.parent.art.dialog.confirm('Are you sure')){ window.parent.art.dialog.alert("ok"); } else { window.parent.art.dialog.alert("not ok"); } window.parent.art.dialog.alert('你点了取消按钮') } }, false); 不论我用close还是cancel属性,都是点击关闭按钮后先关闭窗口在弹窗提示,我想让他先弹窗在根据选择的确定或取消决定是否关闭窗口
豪情 2015-08-06
  • 打赏
  • 举报
回复
核心的代码是这段:

cancel: function () {
    if(confirm('Are you sure')){
        alert(1);
    } else {
        alert(2);
    }
    //alert('你点了取消按钮')
}
完整的例子在这,github上的这个页面:aui-artDialog-9fd667e/test/show.html

<!doctype html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<title>test</title>
</head>
<body>
<button data-event="test">open dialog</button>
<script src="../lib/sea.js"></script>
<script>
seajs.config({
  alias: {
    "jquery": "jquery-1.10.2.js"
  }
});
</script>

<script>
seajs.use(['jquery', '../src/dialog'], function ($, dialog) {


	$('button[data-event=test]').on('click', function () {
		var d = dialog({
			title: '消息',
			content: '风吹起的青色衣衫,夕阳里的温暖容颜,你比以前更加美丽,像盛开的花<br>——许巍《难忘的一天》',
			okValue: '确 定',
			ok: function () {
				var that = this;
				setTimeout(function () {
					that.title('提交中..');
				}, 2000);
				return false;
			},
			cancelValue: '取消',
			cancel: function () {
                if(confirm('Are you sure')){
                    alert(1);
                } else {
                    alert(2);
                }
				//alert('你点了取消按钮')
			}
		});

		d.show();
	});

});
</script>
</body>
</html>
iverhan 2015-08-06
  • 打赏
  • 举报
回复
谁能指导一下
iverhan 2015-08-03
  • 打赏
  • 举报
回复
谁能指点一下,谢谢
iverhan 2015-07-30
  • 打赏
  • 举报
回复
谁做过类似的功能,能否指点一下

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧