小技巧--讓JS代碼只執行一次


有時候實在是沒辦法,就像我這個比賽系統中,有一個彈出框,這個彈出框之外都是模糊的(這是在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);  
                
         }    
       })
 }    


愉快地解決了,采用此種方案也是不得已而為之。這公司前人的代碼實在是太亂了。。。


免責聲明!

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



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