OnClick esemény ENTER nyomásra???
Egy érdekes problémát találtam, talán valaki hozzá tud szólni. A következő html kódban a body-hoz hozzákapcsolok egy onclick eseményt, minek hatására alert ablakban megkapom az egér coordinátáit. Ez eddig rendben. Van a html-ben egy form is, egy input mezővel és egy submit gombbal. Ha elkezdek beírni az input boxba valamit, majd entert nyomok, hogy submitoljam a formot, valami oknál fogva megtörténik az OnClick event, az alert ablakban pedig az egér coordinátáit látom, ami most 0,0.Az is furcsa még, hogy csak a click event viselkedik így, a mousedown vagy a mouseup nem. A kódot FF-ben és Chrome-ban néztem, mindkettőben fennáll a jelenség. Miért lehet ez, és mit lehetne csinálni, hogy ne legyen?
■
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu">
<head>
<title>OnClick test page</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript">
window.onload=function() {
document.body.addEventListener('click', function(e) {
alert('e: '+e.pageX +","+e.pageY);
},false);
}
</script>
</head>
<body>
Kattints ide, hogy lásd az egér coordinátákat!
<form action="#">
<input type="text"/>
<input type="submit" />
</form>
</body>
</html>
Ez a jelenseg a bubbling,
click
click
esemény nem csak egér kattintásra történik meg, hanem például ha linkeket billentyűzettel aktiválod (Enter
/Space
) illetvecheckbox
/radiobox
aktiválásánál is. Azaz aclick
esemény nem csak akkor hajtódik végre amikor az egérrel kattintasz. Gondolj csak például érintőképernyőkre. Itt az érintőképernyőre bökés is click eseménynek számít, ugyanakkor általában nem váltódik kimousemove
, mivel nincsen egér.Köszönöm a választ, ezt nem
Koordináták helyett "target"
event.stopPropagation()