有時候實在是沒辦法,就像我這個比賽系統中,有一個彈出框,這個彈出框之外都是模糊的(這是在ajax寫出彈出框時,加了一個水印)。
然而遇到的問題,也是蹊蹺古怪,因為這個彈出框的事件是數據查詢事件,但是因為點擊分頁,每點擊一下,觸發一次這個事件,故而不斷添加水印。
代碼如下:
//比賽查詢 function showBscxBox(requestUrl,param){ jQuery.ajax({ type:"post", url:"matchsearch.do", data:param, success:function(ret){ $("<div class='loadmask'></div>").appendTo('body');
$("#bscx").removeClass('none').html(ret); } }) }
所以多點擊幾次分頁,水印就更深,深到頁面上只看到這個彈出框。
為了解決這個問題,我能想到的辦法就是,讓這句加水印的代碼,只執行一次。這是原理,在網上看到的。
//定義一個全局變量
var isFirst = true; function doS(){ if(isFirst){ doSth...//這里寫你要做什么 isFirst = false; } }
故而也如此改之。
var unMask = true; //用來讓加水印的代碼只執行一次 function showBscxBox(requestUrl,param){ jQuery.ajax({ type:"post", url:"matchsearch.do?type=4", data:param, success:function(ret){ if(unMask){ $("<div class='loadmask'></div>").appendTo('body'); unMask=false;} $("#bscx").removeClass('none').html(ret); } }) }
愉快地解決了,采用此種方案也是不得已而為之。這公司前人的代碼實在是太亂了。。。
