在做帮公司做一个简单投票系统时,有一个鼠标跟随的效果,就是当点击某按钮时会在鼠标的下方显示投票提示,此效果有个注册事件,简单代码如下
<input type="button" οnclick="a()" id="aa"/>
<script language="javascript">
function a(){
//AJAX一些异步请求
b();
}
function b(){
document.getELementById("aa").οnclick=function(){
//鼠标跟随效果代码
}
}
</scritp>
这时候我发现点击那个按钮AJAX只能在第一次点击时有效,其他点击无效,在后来的改动中知道这里面有个事件更换的问题,也就是说第一次点击是函数a执行,但是函数a执行了函数b,函数b中做了onclick的注册事件,所以当第二次及以后的点击事件就执行鼠标跟随效果代码的函数了
在写一小例子,帮助大家理解:
<a href="#" οnclick="Once(this)">事件转换</a>
<script type="text/javascript">
function Once(obj){
alert("Once");
obj.οnclick=Others;//这里是事件注册,不能加()
}
function Others(){
alert("Others");
}
</script>