div1.click=function move_right(a){ 
  var speed=3; 
  var demo=document.getElementById('test');
  if(a)
  {
    var MyMar=setInterval(function(){
    if(parseInt(demo.style.left)>100){clearInterval(MyMar);}
    else{ 
    demo.style.left=parseInt(demo.style.left)+10+'px';}},speed);
  }
}
div2.click=function move_right(a){我是用两个按钮来控制图片集的左右移动,当点击向左移动的按钮时,很快点击向右移动的按钮时,需要对向左移动的setInterval事件做clearInterval处理,我该如何在div2.click做处理

解决方案 »

  1.   

    其实你并不一定要用clearInterval(),你还可以通过一个全局变量来控制是否滚动
      

  2.   

    把myVar定义在方法外面, 然后在div2.click里面clear掉就可以了.
      

  3.   

    var speed=3; 
    var demo=document.getElementById('test');
    var border=demo.setoffWidth;
    var MyMar_left=setInterval(function(){if(parseInt(demo.style.left)>100){clearInterval(MyMar);}
        else{demo.style.left=parseInt(demo.style.left)+10+'px';}},speed);
    var MyMar_right=setInterval(function(){if(parseInt(demo.style.left)<(800-border)){clearInterval(MyMar1);}else{demo.style.left=parseInt(demo.style.left)-10+'px';}},speed);
    var control_l=1,control_r=1;
    function move_right_(){
    if(control_r){
     clearInterval(MyMar_left);
     setInterval(function(){if(parseInt(demo.style.left)>100){clearInterval(MyMar);}
        else{demo.style.left=parseInt(demo.style.left)+10+'px';}},speed);
     control_r=0;
     control_l=1;
     }
     }
     function move_left_(){
     if(control_l){
     clearInterval(MyMar_right);
     setInterval(function(){if(parseInt(demo.style.left)<(800-border)){clearInterval(MyMar1);}else{demo.style.left=parseInt(demo.style.left)-10+'px';}},speed);
     control_l=0;
     control_r=1;
     }
     }
    修改过报错,说demo=null;
    就第三行代码报错
    怎么回事
      

  4.   

    demo.setoffWidth 改成了demo.offsetWidth了还是不行