Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

JS +event doorgeven Firefox en IE

Pagina: 1
Acties:

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
Hoi,

Even een klein vraagje over javascript.
Ik bouw met javascript een knop en wil daar op de onmousedown een functie aanhangen waarbij ik het event doorgeef.. Echter firefox kent geen window.event dus heb ik het zo opgelost. Ik vraag me echter af of het niet makkelijker (netter) kan. 8)7

code:
1
2
3
4
5
6
7
var button = document.createElement('input');
button.type = 'button';
button.onmousedown = function(oEvent) 
{ 
    if(!oEvent) { oEvent = window.event; }  
    openContextMenu(oEvent); 
}

Verwijderd

Ik zou lekker gebruik maken van prototype of mootools. Een Javascript library zorgt ervoor dat je niet zelf het wiel hoeft uit te vinden, en als je relatief weinig ervaring hebt scheelt het je een hoop geknoei met het uitzoeken van browser issues.

JavaScript:
1
2
3
Event.observe (button, 'mousedown', function () {
   // doe iets leuks
}.bind (button));


Wil je pure javascript schrijven, dan moet je dat inderdaad ongeveer doen zoals je zelf aangaf.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

:?

JavaScript:
1
2
3
4
5
6
7
function openContextMenu(e)
{
    e = e || window.event;
    // e is je event object
}

button.onmousedown = openContextMenu;

[ Voor 26% gewijzigd door crisp op 18-12-2007 18:19 ]

Intentionally left blank


  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
hmm crisp, had ik inderdaad net geprobeerd echter mijn functie openContextMenu heeft meer argumenten, en geeft in IE een interface not implemented?
Moet ik daar nu dus alsnog een wrapper omheen doen?
zucht

ps ik gebruik dit reeds binnen een prototype
blijf mijn this dan ook hety object of zit ik in de input button scope?

okok ff proberen

[Geprobeerd]
Op jou manier komt de functie binnen de INPUT scope, maar de e = e || oplossing heb ik nu generiek verwerkt en dat werkt erg mooi....

thanks crisp

[ Voor 40% gewijzigd door vorlox op 18-12-2007 18:44 ]


  • Cartman!
  • Registratie: April 2000
  • Niet online
Helemaal eens met Cheatah. Ik gebruik hiervoor Mootools (www.mootools.net) en daarmee kun je simpel een nieuw element aanmaken als object en daar alle mogelijke eigenschappen in 1 keer aanhangen die je wilt (stijlen, events, classes, id, effecten). Kort simpel en snel :)