Fork me on GitHub
随笔 - 317  文章 - 1  评论 - 11  阅读 - 27万

小技巧--让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);  
                
         }    
       })
 }    
复制代码


愉快地解决了,采用此种方案也是不得已而为之。这公司前人的代码实在是太乱了。。。

posted on   雨为我停  阅读(26645)  评论(1编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示