使用artDialog時遇到的問題


artDialog是一個相當好用的對話框插件。用法可以參考:http://aui.github.io/artDialog/doc/index.html#api-show

但我使用時遇到了下面的問題:

在列表頁面,針對每一條數據后面有一個設置按鈕,單擊設置按鈕彈出一個設置窗口1。

在設置窗口中有文件上傳的部分,點擊上傳按鈕會使用artDialog彈出一個提示窗口2(提示支持的文件類型,大小等,然后是一個選擇文件的按鈕)。

現在的問題是:在設置窗口1點擊上傳按鈕時,彈出的提示窗口2被1遮住了。

我用的版本是4.1.2。

百度呢,發現它有一個zIndex屬性,不過呢這是一個全局的屬性。也就是說呢,你第一個彈出窗口zIndex設置為99,

那么后面的彈出窗口zIndex都是99.那么首先想到了針對設置窗口1和提示窗口2都設置zIndex。

但僅僅這樣扔有問題。

第一次是成功的。但將子窗口關閉后,再次打開就被遮住了。由於zIndex是一個全局屬性,因此在第一次打開子窗口時已經將zIndex設置為了新的值。
再次打開時父窗口和子窗口的zIndex一樣。父窗口大一些,將子窗口遮住了。
那么,解決辦法就是:在每次打開子窗口時改變zIndex,讓他比父窗口大就行了。

好吧,這樣做了之后暫時沒有什么問題了。

 

但是,如果頁面有可以input,select之類的,在你點了input,select后發現再點上傳按鈕又不行了!

那我首先對設置窗口頁面的所有input,select加了click事件處理,當click時將zIndex++。

這樣做之后,在你click input,select元素時,再點上傳按鈕沒問題。

但如果你改變了值就又不行了。

所以,在失去焦點時,我將zIndex再次++.這樣終於沒問題了。

 

相關代碼:

list頁面:

 1 function showSettings(obj) {
 2             var posno = $(obj).attr("posno");
 3             var smartid = $(obj).attr("smartid");
 4             var index = artindex();
 5             $.get("${ctx}/tsmartpos/posset/"+smartid,{posno:posno,shopid:shopid,ts:(new Date()).getTime()},function(data){
 6                    art.dialog({
 7                        id:'parentWindow',
 8                     lock:true,
 9                     opacity:0.3,
10                     title: '終端素材上傳',
11                     width: '80%',
12                     top:'10%',
13                     drag:true, 
14                     zIndex:index,
15                     content: data,
16                     esc: true,
17                     init:function(){
18                         partdialog = this;
19                     }
20                 });
21               });
22         } 
23         
24         function closeWin() {
25             partdialog.close();
26         }
27         function artindex() {
28             return 999;
29         }

 

設置窗口:

 1 var zindex = parent.artindex();
 2 
 3 //上傳圖片
 4         function uploadImg(type){//上傳類型  videourl:視頻 , logourl:logo ,wxcodeurl: 二維碼
 5             flag = type;
 6             
 7             $.get("${ctx}/tsmartset/gotouploadpic/"+type ,{ts:(new Date()).getTime()},function(data){
 8                 zindex++;
 9                 console.log('zindex:'+zindex);
10                    art.dialog({
11                        id:'imageart',
12                     lock:true,
13                     opacity:0.3,
14                     title: '上傳圖片',
15                     width: 470,
16                     left: '50%',
17                     top: '40%',
18                     drag:false,
19                     zIndex:zindex,
20                     content: data,
21                     esc: true,
22                     init: function(){
23                        pic_artdialog = this;
24                     },
25                     close: function(){
26                        //delpic(type)
27                        pic_artdialog = null;
28                        $('#face').imgAreaSelect({remove:true}); 
29                     }
30                 });
31                 pic_artdialog.show();
32               });
33         }
34 
35 $("input").click(function(){
36             zindex++;
37         }).blur(function(){
38             zindex++;
39         });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM