2016-12-09 10 views
1

Я пытаюсь запустить функцию в то время как mousedown, но для жизни меня я не могу заставить его работать, удерживая, но все работает, просто щелкая. Я пытаюсь изменить цвет стран на карте, поскольку я держусь. вот мой кодВ то время как mousedown JS

var int; 
    var mouseStillDown = false; 

     function mousedown(geography) 
     {  console.log('mousedown '+mousedownID); 
      mouseStillDown = true; 
      int = setInterval(performWhileMouseDown(geography), 100); 
     } 



    function mouseup() 
    { 
     clearInterval(int); 
     mouseStillDown = false; 
    } 

    function mouseout() 
    { 
     clearInterval(int); 
    } 

     function performWhileMouseDown(geography) 
     { 
      if (!mouseStillDown) 
       {console.log('error');} 

      if (mouseStillDown) { 
      if(data[geography.id]) 
      { 
       data[geography.id] ++; 
      }else 
       { 
       data[geography.id] = 1; 
       } 
      var m = {};           
      m[geography.id] = color(data[geography.id]); 
      map.updateChoropleth(m); 
       } 

      /* if (mouseStillDown) 
       { setInterval(performWhileMouseDown(geography), 100); }*/ 
     } 

ответ

1

Вы можете попробовать использовать вместо mousemove, mousedown только стрелять один раз.

var mouseDown = false; 
window.addEventListener('mousedown', function() { mouseDown = true }) 
window.addEventListener('mouseup', function() { mouseDown = false }) 
window.addEventListener('mousemove', function() { 
    if (!mouseDown) { 
    return; 
    } 
    // perform while mouse is moving 
}) 
0

вот что работал для меня

var timeout ; 
function mouseDown(geography){ 

    timeout = setInterval(function(){ 


      if(data[geography.id]){ 

       data[geography.id] ++; 
      }else{ 
       data[geography.id] = 1; 
      } 
      var m = {};           
      m[geography.id] = color(data[geography.id]); 
      map.updateChoropleth(m);}, 100); 

    return false; 
} 


function mouseUp(geography){ 

clearInterval(timeout); 
    return false; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^