Opgelost door alleen dit te gebruiken:quote:Op maandag 12 december 2005 00:07 schreef JeRa het volgende:
Probleempje met onclick. Hoe stel ik die in bij dynamisch aangemaakte elementen?
var nieuweLink = document.createElement('a');
var label = document.createTextNode('blaat');
nieuweLink.appendChild(label);
//Stel de onclick in
nieuweLink.setAttribute('onclick', 'alert(\'waah!\')');
//Maar dit werkt alleen in Firefox
Hoe dit ook in IE werkende te krijgen?
| 1 2 3 4 | { alert(this); //dit blijkt te werken } |
Het ging me vooral om het idee dat ik het object tijdens de onclick kon meegevenquote:Op maandag 12 december 2005 00:12 schreef SuperRembo het volgende:
Je kunt gewoon nieuweLink.onclick = function(){ alert('waah!') } gebruiken.
Je kunt het ook met nieuweLink.addEventLister() (in FF), of nieuweLink.attachEvent() (in IE) gebruiken.
Hoezo dat? Heeft javascript niet net zoals java een (al is het maar matige) garbage collector?quote:Op maandag 12 december 2005 00:16 schreef SuperRembo het volgende:
Aha, bedoelde je dat. Dat heet een "closure".
Wel een beetje uitkijken, hier kan je (vooral in IE) enorme gekeugenlekken mee creeren.
Ik heb in ieder geval er al voor gezorgd dat de directe callbacks uit zo'n klein mogelijke code bestaan en de 'grote' functies aanroepen. Zal in een later stadium het eens testen in IE, hoewel ik me nu niet kan voorstellen hoe ik ooit een circulaire referentie zou kunnen krijgen op deze manier.quote:Op maandag 12 december 2005 07:51 schreef SuperRembo het volgende:
Javascript heeft idd een garbage collector, maar in IE kan het mis gaan als je circulaire referenties hebt met DOM nodes. MS geeft er zelf informatie over. Ik had zelf op een gegeven moment een script dat bij elke div die te voorschijn kwam 10MB geheugen opeiste
Waarom dat? Omdat er bij element.attribute meer blokjes groen zijn dan bij element.setAttribute(attribute, etc)?quote:Tja, waarom werkt iets in de ene browser wel en in de andere niet...
Je kan beter element.className = 'blaat' gebruiken. Zie ook Quirksmode.org.
Ik heb me even ingelezen over circulaire referenties bij closures. Op zich maak ik wel gebruik van de structuur waarop memory leaks kunnen ontstaan in IE, maar aan de andere kant, ik zou niet weten hoe ik het zonder zou moeten doenquote:Op maandag 12 december 2005 08:32 schreef JeRa het volgende:
[..]
Ik heb in ieder geval er al voor gezorgd dat de directe callbacks uit zo'n klein mogelijke code bestaan en de 'grote' functies aanroepen. Zal in een later stadium het eens testen in IE, hoewel ik me nu niet kan voorstellen hoe ik ooit een circulaire referentie zou kunnen krijgen op deze manier.
| 1 2 3 4 5 6 7 | element.onclick = functie; function functie() { roepGrotereFunctieAan(this); } |
| 1 2 3 4 5 6 7 8 | var link = document.createElement('A'); // Set properties for link ... container.appendChild(link) // Maar zo var link = container.appendChild(document.createElement('A')); // Set properties for link ... |
| 1 2 3 4 5 6 7 8 9 10 11 12 | var r=255, b=16; function bg() { document.bgColor = b++, r-; setTimeout(1000); } </script> |
| 1 |
| 1 2 3 | // of zo document.body.style.backgroundColor = 'rgb(255, 0, 0)'; |
Oke bedankt, ik zal het nog even proberenquote:Op dinsdag 13 december 2005 21:13 schreef SuperRembo het volgende:
setTimeout werkt anders, zie ook W3Schools
[ code verwijderd ]
De achtergrondkleur stel je zo in:
[ code verwijderd ]
Dat kan niet bij mijn script, aangezien elk gemaakt element ook nog gewijzigde properties nodig heeft.quote:Op maandag 12 december 2005 13:31 schreef SuperRembo het volgende:
Het scheelt ook als je nieuwe elementen direct in de tree hangt:
[ code verwijderd ]
Ik eis niets.quote:Op dinsdag 13 december 2005 22:34 schreef SuperRembo het volgende:
Is het script alleen voor eigen gebruik dat je IE7 kan eisen?
| 1 |
dank, gelukt (met behulp van googlequote:Op donderdag 15 december 2005 17:38 schreef DionysuZ het volgende:
window.open?
Da's een hele goede vraag en met jouw andere kijk hierop zou ik mijn probleem kunnen oplossen... ware het niet dat ik die input later weer nodig ga hebben om de titel en jaartal in een eigen database te kunnen stoppen. En dat is weer het handigst met een form.quote:Op vrijdag 16 december 2005 20:22 schreef SuperRembo het volgende:
Waarom gebruik je een input box als je het gedrag van een input box niet wil?
Mja ik heb er keer op keer op gehamerd dat custom scrollbars counter intuitive werken. Eerst wilde hij dat ding ook nog aan de linkerkant, helemaal tegen de intuitie in. Helaas mocht het niet baten en kan ik toch zo'n ding gaan implementerenquote:Op zaterdag 24 december 2005 15:40 schreef SuperRembo het volgende:
Custom scrollbars zijn idd meestal zwaar irritant.
tnxquote:Je kunt het onscroll event gebruiken. Zie ook de Event compatibility tables bij quirksmode.org.
link.removeAttribute('href');quote:Op vrijdag 23 december 2005 19:29 schreef JeRa het volgende:
Als ik een <a>-tag middels javascript toevoeg zonder href-attribuut geeft dit hetzelfde effect als dat je het direct als html zou presenteren: de tekst tussen <a> en </a> wordt géén link.
Nu is het zo dat als je iets dergelijks als dit uitvoert:
link.href = '#';
Je dan een link maakt van alles binnen die <a>-tag. Echter wil dit:
link.href = '';
De link weer niet verwijderen (als in, het wordt niet meer klikbaar). Is hier een andere methode voor?
| 1 2 3 4 5 | { // array met imageformaten // if filename is een 'image'(lees uit image formaten) dan... } |
| 1 2 3 | // Het is een gif, jpg, jpeg of png } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | function test(filename) { var ext = new Array(); var f = new Array(); var fxt = ""; var res = -1; ext[0] = "gif"; ext[1] = "bmp"; ext[2] = "jpg"; ext[3] = "png"; ext[4] = "jpeg"; f = filename.split('.'); fxt = f[f.length-1]; for (x = 0; x < ext.length; x++) { if (ext[x] == fxt) { res = x; } } if (res == -1) { alert("Image type NOT found"); } else { alert("image type is found: " + fxt); } } test("erik.gif"); test("erik.txt"); test("erik.png"); </script> |
Helaas werkt die nietquote:Op zondag 25 december 2005 13:10 schreef SuperRembo het volgende:[ code verwijderd ]
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |