今天有人在羣裏發問:“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;
- }
原來是傳說中的閉包在搞怪啊。