2017-03-27 38 views
0

因此,Chrome和Firefox似乎推出了onAuxClick(自Chrome 55起Chrome)。這是爲了像onClick,但爲非主要按鈕(即中間和左鍵單擊)。HTML/JS:同時定義onClick和onAuxClick?

我有很多的HTML代碼是這樣的:

<div onClick="someFunc(event);">Click here with either left or middle click</div> 

(SomeFunc,當然,有一些代碼,做稍微不同的事情取決於它是否是一箇中等或左鍵點擊)。

onAuxClick的添加打破了所有這些代碼,因爲中間點擊不再觸發onClick函數。感謝您的超級討厭,Chrome和Firefox!

無論如何,有什麼我可以代替onClick與這仍然會觸發這兩個事件?喜歡的東西:

<div onAnyClick="someFunc(event);">Click here with either left or middle click</div> 

或者是解決現在到處打電話重複的功能,如:

<div onClick="someFunc(event);" onAuxClick="someFunc(event);">Click here with either left or middle click</div> 

感謝。

回答

1

已經有一個由mozilla製作的例子。選中此撥弄出來:

// Source: https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onauxclick 
 

 
var button = document.querySelector('button'); 
 
var html = document.querySelector('html'); 
 

 
function random(number) { 
 
    return Math.floor(Math.random() * number); 
 
} 
 

 
button.onclick = function() { 
 
    var rndCol = 'rgb(' + random(255) + ',' + random(255) + ',' + random(255) + ')'; 
 
    button.style.backgroundColor = rndCol; 
 
}; 
 

 
button.onauxclick = function() { 
 
    var rndCol = 'rgb(' + random(255) + ',' + random(255) + ',' + random(255) + ')'; 
 
    button.style.color = rndCol; 
 
}
<button> 
 
    Click Me! 
 
</button>

+0

所以,不幸的是,唯一的辦法就是添加事件處理程序兩者。沒有「一個事件處理程序來統治它們了」?這是令人討厭的。 :( – Chad

+0

至少現在,我希望這會得到改善,所以它會類似於'KeyboardEvent' :) –