2017-11-24 14 views
-1

google.maps.circle(...)をクリックするとshiftKeyが押されたかどうかを検出しようとしています。この質問はすでにここに答えがありサークルをクリックしたときにshitfKeyが押されているかどうかを検出します

好きな :

myObj[id] = new google.maps.Circle({/*Initialization*/} 
myObj[id].addListener('click', function (event) { 
    //Some code here 
myFunction(this, event); 
} 

そして動作しない機能:

は私がハンドラを持っています。

myFunction(elem, event) { 
    console.log(event); 
    if(!event.shiftKey) { //Do Something } 
} 

またevent.xa.shiftKey、仕事に使用:event.va.shiftKey、今日それがAaです:

enter image description here

は、オブジェクトattributsを介して実行しようとしましたが、shiftKeyを検出しません:

 var shiftKey; 
    if (Object.keys(event).some(function (key) { 
     if (event[key] && 'shiftKey' in event[key]) { 
       shiftKey = event[key].shiftKey; 
       return true; 
     } 
     return false; 
    })) { 
     // We found it, `shiftKey` has the value 
    } else { 
     // ShiftKey is NOT pressed 
    } 

オブジェクトを常に変更し続けることはできません。では、これを検出するための決定的で正しい方法は何でしょうか?

答えて

1

ドキュメントを使用して修正する方法が見つからないため、名前ではなくタイプ別にMouseEventを検索する必要がありました。

myFunction(elem, event) {   
    for (var key in event) { 
     if (event[key] instanceof MouseEvent) { 
      event["mouseEvent"] = event[key]; 
      break; 
     } 
    } 

    if(event["mouseEvent"].shiftKey){ //shiftKey is pressed } 

} 
関連する問題