Myší události v javascriptu
Setkali jste se s potřebou detekovat kliknutí prostředním tlačítkem myši nebo scrollování kolečkem? Přečtěte si jak na to.
Kliknutí prostředním tlačítkem myši
<a href="#" onmousedown="return buttonalert(event)">Klikni</a>
Vlastní funkce pro zpracování události pak vypadá následovně:
function buttonalert(event) {
var button;
if (event.which == null) {
button = (event.button<2) ? "L" : ((event.button==4) ? "M":"R");
} else {
button = (event.which<2) ? "L" : ((event.which==2) ? "M":"R");
}
alert( button );
return false;
}
Více informací na:
Točení kolečkem
Protože se způsob rozeznání směru (nahoru/dolů) točení kolečkem liší v různých prohlížečích a kód je poněkud delší, nabízím odkazy na řešení v závislosti na tom, zda používáte nějaky JS framework či nikoliv.
- řešení bez JS frameworku: Mouse wheel programming in JavaScript
- plug-in pro jQuery*: Mouse Wheel Extension -
přidá událost mousewheel, tedy můžeme detekovat
točení kolečkem nad libovolným elementem
- pro jQuery 1.2.1 (vč.) a nižší: Mouse Wheel Extension 2.2
- pro jQuery 1.2.2 (vč.) a vyšší: Mouse Wheel Extension 3.0.0)
- plug-in pro Prototype JS: http://ajaxian.com/archives/prototype-event-extension-eventwheele
*) V jQuery (a to již v je standarně (a to již ve verzi 1.1.1) událost scroll, která je také vyvolána točením kolečkem. Není však možné snadno zjistit směr točení kolečkem.