Permalänk

någon som här hemma på Js

Hej, undrar bara om det i Js går att använda "onmousedown()" som en funktion så att jag kan välja när funktionen ska användas eller om den måste ligga i Body taggen och alltid vara aktiv?

Går även bra med andra lösningar, bara de fungerar så att jag kan välja när Onmousedown ska vara aktiv

Permalänk
Medlem
Permalänk

Jag ska alltså lägga onmouseclick i body men använda addEventListener/removeEventListener för att aktivera och avaktivera?

Permalänk
Medlem

<script type="text/javascript"> window.addEventListener("load", onLoadStuff, true); function onLoadStuff() { document.getElementsByTagName("html")[0].addEventListener("click", function() {alert("woot?");}, false); } </script>

Sitter och läser lite om DOM och sådan "roligt" just nu. Har lite kvar på 1.2 DOM event flow så är inte helt säker på om false eller true blir bäst som tredje argument till addEventListener. Och sedan om document.getElementsByTagName("html")[0] verkligen är det vackraste sättet att komma åt html-elementet är jag inte riktigt säker på.

Permalänk

Så detta fungerar om jag först vill avaktivera eventen onmousedown() för att sedan kunna aktivera den?

Permalänk
Avstängd

Re: någon som här hemma på Js

Citat:

Ursprungligen inskrivet av fabianbergmark
Hej, undrar bara om det i Js går att använda "onmousedown()" som en funktion så att jag kan välja när funktionen ska användas eller om den måste ligga i Body taggen och alltid vara aktiv?

Går även bra med andra lösningar, bara de fungerar så att jag kan välja när Onmousedown ska vara aktiv

http://www.quirksmode.org/blog/archives/2005/10/_and_the_winn...

http://www.quirksmode.org/blog/archives/2005/08/addevent_cons...

Visa signatur

Programmerare med C++ som huvudspråk.

Permalänk

Jag ska alltså använda addEvent(obj,"mouseover",doSomething) som en funktion för att kunna aktivera ett event vid ett särskilt tillfälle?

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av fabianbergmark
Jag ska alltså använda addEvent(obj,"mouseover",doSomething) som en funktion för att kunna aktivera ett event vid ett särskilt tillfälle?

Mitt tips är att du försöker och läsa igenom event hanteringen för firefox och internet explorer. De hanterar inte det på samma sätt.

På denna sidan ser du
http://www.quirksmode.org/blog/archives/2005/08/addevent_cons...

När du väl känner till hur eventhanteringen fungerar så förstår du även hur man kopplar element.

Du kan göra så här

document.getElementById("blablabla").onmousedown = function(){.....}
document.getElementById("blablabla").onmousedown = new Function("......");

Visa signatur

Programmerare med C++ som huvudspråk.

Permalänk

Läste länken. fick det till att jag kan göra såhär

<script type="text/javascript">
function disp_addevent()
{
addEvent(obj,"mousedown",alert("hej"))
}
</script>

Undrar bara vad jag ska ange som obj för att få hela bakgrunden som objekt

tack för länken förresten

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av fabianbergmark
Läste länken. fick det till att jag kan göra såhär

<script type="text/javascript">
function disp_addevent()
{
addEvent(obj,"mousedown",alert("hej"))
}
</script>

Undrar bara vad jag ska ange som obj för att få hela bakgrunden som objekt

tack för länken förresten

Objektet "obj" i addEvent(obj,"mousedown",alert("hej")); (glöm inte semicolonet) är själva html elementet.
Du måste alltså ha tag i det element som du skall koppla funktionen till.

Olika sätt och hämta element:
Oftast gör man så här
var e = document.getElementById("något id värde"");
addEvent(e,"mousedown",alert("hej"));
addEvent(e,"mousedown",new Function("alert('hej');"));

Sätter du ett id på bodytagen så fungerar det.

du kan även köra

addEvent(document.body,"mousedown",alert("hej"));
eller
addEvent(document.documentElement,"mousedown",alert("hej"));

viktigt och kolla vilka browsrar som skall kunna köra koden för det är lite si och så med hur man får tag i bodytagen direkt vida document

http://www.quirksmode.org/js/doctypes.html

Visa signatur

Programmerare med C++ som huvudspråk.

Permalänk

<html>

<script type="text/javascript">
function geta()
{
var e = document.getElementById("ide");
addEvent(e,"mouseover",alert("hej"));
}
</script>
<body id="ide">
<input type="button" onclick="geta()" value="Display alert box" />
</body>
</html>

detta fungerar inte, felmeddelandet säger att ett objekt förväntas rad 7 tecken 1, vet någon vad som är fel?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av fabianbergmark
Okej, tack för hjälpen... prövade att sätta ett id på body tagen men fick det inte riktigt att fungera,

Hur sätter jag ett id på bodytagen, gärna ett exempel

tack för länken förresten

För att tilldela body-elementet ett id använder du bara attributet id, t.ex. <body id="amusingscriptthing">. Men det borde finnas något sätt att klättra till <body> i DOM-trädet utan id, fast vet inte om getElementsByTagName("body") som jag använde tidigare är det smidigaste sättet. Det kanske är snabbare att använda sig av getElementById("amusingscriptthing") istället för getElementsByTagName("body") så gör som du vill(, inte för att det spelar någon större roll när du bara kör den en gång).

edit: document.body...

Permalänk

Jo jag sökte lite till på w3schools och kom också fram till detta, dock fungerade det fortfarande inte, script linkat i förra inlägget samt felmeddelandet jag får,

<html>

<script type="text/javascript">
function geta()
{
var e = document.getElementById("ide");
addEvent(e,"mouseover",alert("hej"));
}
</script>
<body id="ide">
<input type="button" onclick="geta()" value="Display alert box" />
</body>
</html>

detta fungerar inte, felmeddelandet säger att ett objekt förväntas rad 7 tecken 1, vet någon vad som är fel?

det som händer är att när jag trycker på knappen kommer alerten "hej" upp istället för att mousemove aktiveras, hur fixar jag detta?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av fabianbergmark
Jo jag sökte lite till på w3schools och kom också fram till detta, dock fungerade det fortfarande inte, script linkat i förra inlägget samt felmeddelandet jag får,

<html>

<script type="text/javascript">
function geta()
{
var e = document.getElementById("ide");
addEvent(e,"mouseover",alert("hej"));
}
</script>
<body id="ide">
<input type="button" onclick="geta()" value="Display alert box" />
</body>
</html>

detta fungerar inte, felmeddelandet säger att ett objekt förväntas rad 7 tecken 1, vet någon vad som är fel?

det som händer är att när jag trycker på knappen kommer alerten "hej" upp istället för att mousemove aktiveras, hur fixar jag detta?

Jag tycker det är väldigt oklart vad du menar. Du använder en input[type="button"] och kopplar dess inline-onclick till funktionen geta. Funktionen geta i sin ut registrera varje gång den anropas en ny "event listener" på input[type="button"]:en.

Så kan du försökta att tydligt förklara vad du vill göra?

Permalänk

Förlåt för otydligheten. Iden är att då man skriver fel ord i en promtbox aktiveras en funktion som gör att såfort man rör musen i fönstret så kommer det upp en alert med någon text. jag måste använda någon typ av addevent eftersom det innan man skirvit fel ord i promtboxen ska gå att röra musen i fönstret utan att alerten kommer upp.

hoppas jag gjorde mig förstådd nu

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av fabianbergmark
Förlåt för otydligheten. Iden är att då man skriver fel ord i en promtbox aktiveras en funktion som gör att såfort man rör musen i fönstret så kommer det upp en alert med någon text. jag måste använda någon typ av addevent eftersom det innan man skirvit fel ord i promtboxen ska gå att röra musen i fönstret utan att alerten kommer upp.

hoppas jag gjorde mig förstådd nu

Tror du är inne på lite fel spår. Besökaren kan ju "fastna" på sidan eftersom att denna inte längre kan röra musen? Låter bättre att göra som vanligt, dvs. ha en JS-kontroll när besökaren skickar iväg form:en. Alternativ att det finns en textruta bredvid input:en som talar om att något gick fel med det han/hon just skrev in.

Permalänk

detta script ska inte läggas upp på internett utan bara som ett program på datorn. mest intresserad av hur addevent fungerar. Vet du hur jag gör ett script som gör det jag beskrev?

jag är medveten om att detta leder till att jag fastnar i fönstret:)