HTML / JS:同时定义onClick和onAuxClick?
HTML / JS: Define onClick and onAuxClick at the same time?
所以似乎 Chrome 和 Firefox 引入了 onAuxClick(Chrome 截至 Chrome 55)。这类似于 onClick,但用于非主按钮(即中键和左键单击)。
我有很多 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>
谢谢。
mozilla 已经有例子了。检查此 fiddle:
// 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>
所以似乎 Chrome 和 Firefox 引入了 onAuxClick(Chrome 截至 Chrome 55)。这类似于 onClick,但用于非主按钮(即中键和左键单击)。
我有很多 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>
谢谢。
mozilla 已经有例子了。检查此 fiddle:
// 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>