在做一个图片显示的界面,界面上的图片显示区可以放大缩小图片。如果用户在这个区域狂点鼠标,会出现栈溢出的错误,我想用js控制鼠标事件的响应周期,比如说点击鼠标后1秒之内如果再有鼠标事件就不响应,不知道是不是可以做到。谢谢!

解决方案 »

  1.   

    onmousedown=""?不过不知道怎么写,等高手来
      

  2.   

    做了个简单的例子
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>test</title>
    <script>
    var t = new Date().getTime();
    var i=1;
    function add(){
    var t1 = new Date().getTime();
    if(t1-t>2*1000){//至少2秒触发一次
    t = t1;
    var d = document.getElementById("d");
    d.innerText = i++;
    }
    }
    </script>
    </head><body>
    <input type=button value="click me" onclick="add()">
    <div id=d>0</div>
    </body></html>
      

  3.   

    定义一个时间变量,记录当前鼠标操作的时间 operdate,
    操作间隙周期 itertime。
    ,onmousedown
    中,
    if 
      当前客户端时间-operdate > itertime 
      执行鼠标操作
    else
     返回不执行,或者提示用户操作太快
      

  4.   

    谢谢ls各位,好像还是不行,大家帮我看看:
    // onMouse
    var startTime = new Date().getTime();

    function area_onmousedownFunc(){
    if( ( event.button & 0x01 ) !=0){
        var endTime = new Date().getTime();
        if(endTime - startTime <=0){
            event.cancelBubble = true;
            event.returnValue = false;
            return false;
             }
        }
    }
    document.onmousedown = area_onmousedownFunc;
    我查过资料,好像是这个处理很快,要加一个alert去控制,但是我不想用alert,不知道有没有招啊。
      

  5.   

    上面的代码复制错了
    应该是if(endTime - startTime <=1000){
      

  6.   

    // onMouse    
    var startTime = new Date().getTime();
                
    function area_onmousedownFunc(){                
    if( ( event.button & 0x01 ) !=0){
        var endTime = new Date().getTime();
        if(endTime - startTime <=1000){
                        event.cancelBubble = true;    
                        event.returnValue = false;    
                        return false;
             }
        startTime = endTime;
        }    
    }            
    document.onmousedown = area_onmousedownFunc; 
      

  7.   

    谢谢ls,这句话我改过来了,也是不行。
    如果在if(endTime - startTime <=1000)这个逻辑块里加一个alert就可以实现,不加就不行,鼠标照样响应。
      

  8.   

    或者换个问题吧:在我那个显示图片的网页上狂点鼠标(尽管我已经做出了限制不让图片被放大到很大)会出现stack overflow at line 0的问题,有没有知道这个是啥原因造成的?有没有官方的资料可以参考?谢谢。
    Ps:这个是我的系统的功能的一部分,我用的是ActiveX实现的,图片是从服务器端取出来的。