大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> Script -> 完美解决一个事件激活多个函数(2)

完美解决一个事件激活多个函数(2)

时间: 2021-07-31 作者:daque

  然而在一个页面中,咱们大概会遇到有多个事变要激活多个因变量,每个事变都要写一遍那么的代码,明显不是好办法。聪慧的读者群大概仍旧想到,该当写成一个因变量activemore(),哪个事变要激活多个因变量的,径直就用activemore()就行。  然而在上一局部中咱们把事变的tostring()看成javascript脚步本运转,本质上是运转一段因变量代码,即使写成一个因变量时仍旧用这个本领,即为因变量中嵌套因变量,将会展示预见不到的缺点。 所以咱们写成因变量时把事变的tostring()中的“function anonymous()”字符去掉,运转时就不是一个因变量,而是因变量里面的代码了。其余咱们还不妨设置先激活原有的因变量仍旧先激活此刻要激活的因变量。结果为了简单运用,咱们把事变和要激活的因变量放在一道动作参数,写成以次因变量:function activemore(event_function,order){// order 为负数时先激活myfunction再激活前方的剧本var issn=event_function.indexof("=",0);var myevent=event_function.substring(0,issn);var myfunction=event_function.substring(issn+1,event_function.length);var prefunction=""; if(eval(myevent)) prefunction= eval(myevent).tostring().replace('function anonymous()',"");if(order<0) eval(myevent+"=new function(myfunction+'\\n'+prefunction)");else eval(myevent+"=new function(prefunction+'\\n'+myfunction)");}  之上因变量咱们先把参数“event_function”举行字符串领会,获得事变(myevent)和要激活的因变量(myfunction),而后博得从来激活的因变量(prefunction),结果把多个因变量放在一道激活。由于咱们不过把“function anonymous()”去掉,prefunction字符串的两头会带有“{ }”号,但并不感化步调的运转。

  底下咱们举一个本质运用的例子:使网页中一切的链接都不展示虚线框。  为了到达这个手段,咱们给一切的链接的onfocus事变增添一个激活因变量“blur()”。为了保护少许链接原有的onfocus事变激活因变量仍旧灵验,咱们要用一次activemore()因变量;为了不妨获得一切的链接,咱们用到document.body的onload事变,又要用一次activemore()因变量://使链接不展示虚线框:function blurlinks(){for(i=0;i activemore("document.links["+i+"].onfocus=if(this.blur)this.blur()",-1);}}activemore("document.body.onload=blurlinks()");  链接的onfocus事变(document.links[i].onfocus)要激活的因变量是“if(this.blur)this.blur()”,参数order的值为-1表先激该死因变量再激活它们原有的因变量;document.body.onload事变要激活的因变量是“blurlinks()”,参数order的值简略(或为非负数)表先激活它原有的因变量再激活“blurlinks()”。  从例子中不妨看到,这个因变量用起来还挺大略吧。有了activemore()因变量,不管几何个事变要激活多个因变量,都不妨用同样的语法处置了!

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.