• 小技巧--让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);  
                    
             }    
           })
     }    


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

  • 相关阅读:
    Linux下查找文件(find、grep命令)及结合使用
    Linux x86 Program Start Up
    signal 信号具体含义解释(转)
    迁移Go mod使用笔记
    JS 中几种常用的循环方式
    JS 简单的表单验证功能
    微信小程序中的less开发公共样式引入
    vueelementadmin 超过两级嵌套路由无法缓存的解决办法
    PLM数据库脚本升级命令
    Git中的AutoCRLF与SafeCRLF
  • 原文地址:https://www.cnblogs.com/wanliyuan/p/3546004.html
Copyright © 2020-2023  润新知