你是不是使用了setTimeout函数双线程运行函数,然后在运行该函数的时候,过快的重复进行操作,然后便出现了运行错误呢?
这个现象我有一套解决方案,就是动态地改变触发,在setTimeout运行的那个自定义函数一开始,把相关的触发换为空,比如有一个onclik="fun()",那么在这个自定义函数中开始写上一行:XXX.onclick=function(){}这样的话,就不会再被过快的操作触发它了。然后要记得在这个自定义函数的末尾写是一行:XXX.onclik=function(){fun()}才可以,否则一但运行一次之后,这个触发就再不存在了。
或许会有更好的办法来解决这个问题,但现在我一直没有找到。如果有后来的朋友能有更妙的招,我也在这里好好学习一下了。
如果你只是想让它提示正在运行,那么根据我上述的方法,也就有了解决方案。
我想,如果你只是想让它提示正在运行,而不用触发机制就提示相关的提示框的话,只要在这个函数的开始写上:alert('正在运行')就可以了。
如果你想通过点击等方法实现,比如用户过快地按这个按钮的话,你就可以不写那个空onclick函数,而是写上:XXX.onclick = function(){alert('正在运行!')},就把问题搞定了。
吼吼!
不知道我所说的是不是你正面临的问题,不过这个问题可是困扰了我好长时间,所以印象深刻,看到你的问题就首先猜到了这种情况,如果不是这个现象的话,欢迎把你的问题再清楚地描述一下,发个追问。
1.函数直接写在页面相当于是本页调用,所以理所应当可以调用2.js单独文件不能调用是因为你没有引用js文件,如果引用了的话,也是可以调用的。
引用方式,可以直接拖拽(我一般都是拖拽,因为路径准确),也可以自己写,引用脚本:<script src="Scripts/JScript.js" type="text/javascript"></script>
3.还有就是,引用的js文件一定要在调用之前,否则就找不到函数了,会报错或undefined
例如:
调用页面:
<script src="Scripts/JScript.js" type="text/javascript"></script>
<script type="text/javascript">
aa()
</script>
Script.js中代码:
function aa() {
alert("js文件掉用")
}
<SCRIPT LANGUAGE="JavaScript">function aa1511() {
var chengshi="马鞍山"
var shengfen="安徽省"
return shengfen+"@"+chengshi
}
function xialachaxun() {
var hanshu=aa1511().splite("@")
document.getElementById("shengfen").value=hanshu[0]document.getElementById("chengshi").value=hanshu[1]
}
</SCRIPT>