5

これは私の現在のコードです

google.maps.event.addListener(marker, `mouseover`, function() { 
  alert('loaded when i hovered');
});

しかし、マウスが2秒間要素の上にある場合に関数が実行されるようにします。

これを試しましたが、うまくいきませんでした。

 google.maps.event.addListener(marker, `mouseover  2000`, function() { 
   alert('loaded after then when i stay mouse 2 sec'); 
 });

2 秒間ホバーした後に関数を実行するにはどうすればよいですか?

4

3 に答える 3

9

タイマーを使用する必要があります。マウスオーバーで設定し、タイマーコールバックで作業を行います。また、タイマーを停止するマウスアウト イベントを処理する必要があります。

var timeoutId = null;
google.maps.event.addListener(marker, 'mouseover',function() { 
   timeoutId = window.setTimeout(function(){
     alert("I did it!");
   }, 2000);
 } );

// Cancel your action if mouse moved out within 2 sec
google.maps.event.addListener(marker, 'mouseout',function() { 
  window.clearTimeout(timeoutId)
});
于 2012-10-17T14:06:30.937 に答える
3

setTimeoutを使用すると、次のようになります。

var timer;

google.maps.event.addListener(marker, 'mouseover', function() {        
   timer = window.setTimeout(function(){
     alert("Stackoverflow Rocks!!!");
   }, 2000);
 } );

google.maps.event.addListener(marker, 'mouseout', function() {        
   window.clearTimeout(timer);
 } );
于 2012-10-17T14:08:34.000 に答える
0

setTimeoutmouseover イベントを呼び出します。戻り値を共有された場所に保存します (例: クロージャー)。

clearTimeoutmouseout イベントを呼び出します。2 秒が経過する前にそのイベントが発生しない場合は、渡した関数setTimeoutが呼び出されます。

于 2012-10-17T14:05:02.207 に答える