下面 是我写出来的思路 但是代码是错误的 下面是我想实现的效果 求高手修改
<a id="A" onmouseOver="mouseOver(1)" >A</a> 
<script type="text/javascript">  
function mouseOver(u){ 
document.getElementById('A').onmouseOver.replace('mouseOver(1)','mouse(1)'); 
//但点击事件的时候 mouseOver(1) 替换为mouse  防止for循环的时候 事件被重新触发
var x=1;
for(;x==10;x++){alert(x);}
var aop = document.getElementById('A').onmouseOver;//但for语句循环完成后 获取onmouseOver里面的值
document.getElementById('A').onmouseOver.replace(aop,'mouseOver(1)');//获取后并且修改为正确

</script> 

解决方案 »

  1.   

    你那种要求不用更新事件就行,设置一个变量标记是否在运行就行了
    <a id="A" onmouseOver="mouseOver(1)" >A</a> 
    <script type="text/javascript">
        var running = false;
        function mouseOver(u) {
            if (running) return;
            running=true
           // document.getElementById('A').onmouseOver.replace('mouseOver(1)', 'mouse(1)');
            //但点击事件的时候 mouseOver(1) 替换为mouse  防止for循环的时候 事件被重新触发
            var x = 1;
            for (; x == 10; x++) { alert(x); }
           // var aop = document.getElementById('A').onmouseOver; //但for语句循环完成后 获取onmouseOver里面的值
            // document.getElementById('A').onmouseOver.replace(aop, 'mouseOver(1)'); //获取后并且修改为正确
           running=false
        } 
    </script> 
      

  2.   

    <a id="A" onmouseOver="mouseOver(1)" >A</a> 
    <script type="text/javascript">
        var running = false;//开关变量,默认为false,函数不在执行中
        function mouseOver(u) {
            if (running) return;//如果上一次mouseover函数还为执行完毕又触发mouseover时就退出,不执行下面的代码
            running=true//标记为触发了mouseover
            var x = 1;
            for (; x == 10; x++) { alert(x); }
           running=false//标记mouseover已经执行完毕,下一次mouseover时可以触发
        } 
    </script>