今天有人在群里发问:“art.dialog. texterea 里面 onkeyup 怎么不起作用啊?artdialog 如何给textarea 添加事件?”。
我最近用artDialog时也发现了几个问题,后来发现新版的有问题,如果使用旧版本则没有这个问题,我链接到一个页面,会有一个弹出,然后自动关闭。
当我们写下如下代码:
function aa(){ var haha = 1; art.dialog({ content: 'hello', ok: function () { this.title('关闭').time(3); haha = 2; return false; }, cancel:function(){this.close();} }); return haha; }
如何在对话框里点"是",改变haha值为2啊?
这个函数看似简单,但是你试试就发现,没有返回。其实art内部已经跨越多个函数了,可以试试把haha设为全局变量。如何做呢?不要在函数内部声明haha。于是,代码成了
var haha = 1; function aa(){ art.dialog({ content: 'hello', ok: function () { this.title('关闭').time(3); haha = 2; return false; }, cancel:function(){this.close();} }); return haha; }
原来是传说中的闭包在搞怪啊。
本文来源:关于网页前端框架art.dialog的一些问题