zoukankan      html  css  js  c++  java
  • 小技巧--让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);  
                    
             }    
           })
     }    


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

  • 相关阅读:
    Struts2标签库
    ognl表达式
    Struts2拦截器
    Struts2文件上传与下载
    Swoft2.x 小白学习笔记 (四) --- RPC
    Swoft2.x 小白学习笔记 (三) --- Task、协程
    Swoft2.x 小白学习笔记 (二) --- mysql、redis
    Swoft2.x 小白学习笔记 (一) ---控制器
    Tornado WebSocket简单聊天
    用python实现的21点游戏
  • 原文地址:https://www.cnblogs.com/wanliyuan/p/3546004.html
Copyright © 2011-2022 走看看