王尘宇
王尘宇

小技巧--让JS代码只执行一次

访客1440

有时候实在是没办法,就像我这个比赛系统中,有一个弹出框,这个弹出框之外都是模糊的(这是在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); } }) }

所以多点击几次分页,水印就更深,深到页面上只看到这个弹出框。

为了解决这个问题,我能想到的办法就是,让这句加水印的代码,只执行一次。这是原理,在网上看到的。

//定义一个全局变量varisFirst =true; function doS{ if(isFirst){ doSth...//这里写你要做什么 isFirst=false; } }

故而也如此改之。

varunMask =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); } }) }

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

抱歉,评论功能暂时关闭!