2017-03-31 72 views
2

我試圖檢測shift點擊與JavaScript,但由於某種原因,它只能在IE檢測換擋+使用jQuery點擊Chrome瀏覽器

.click(function (e) { 
    if (e.shiftKey) { 
     Rain(); 
    } 
}); 

這是在IE中爲我工作的代碼,我怎麼能在Chrome上檢測到它

+0

這應該很好地工作在Chrome。也許仔細檢查Rain()函數是否正在工作,並且事件處理程序是否正確應用。 – Drummad

+0

該功能正常工作 – Yonathanb

+0

您是否嘗試將事件記錄到控制檯,以便比較換檔時間是否停止,然後沒有按鍵?另外,如果這是不可能的,你可以嘗試只綁定點擊事件,一旦換檔停止,然後解除在換檔釋放時的點擊? –

回答

3

我不認爲有一個定義的組合,但你可以自己做。 A(原油)例如:

<div id="someElement"> 
    Click me for an alert! 
</div> 

<script> 
var shiftPressed = false; 
$(document).keydown(function(event) { 
    shiftPressed = event.keyCode==16; 
}); 
$(document).keyup(function(event) { 
    if(event.keyCode==16){ shiftPressed = false; } 
}); 

$('#someElement').on('click', function(e){ 
    if(shiftPressed){ 
     alert("Shift and click!"); 
    } 
    else{ alert("Nope"); } 

}); 
</script> 

你可以通過在KEYDOWN是爲了儘量減少事件的數量轉變只綁定.keyup()改進。您應該添加儘可能少的邏輯地外的if語句,作爲本次活動得到射擊很多

+1

這是一個很好的邏輯思路,但就像你說的那樣,它不起作用,這是因爲e.shiftKey在keyup事件中不起作用。您可以改用e.keyCode === 16。 – Drummad

+0

哈哈是的,只是在更新。它現在應該大多按預期工作 – Martijn

+0

它沒有檢測到event.keyCode – Yonathanb