1 2 3 4 5 6 7 8 9 10 11 | if (owner & 2) { document.getElementById('owner_write').checked = true; } else { document.getElementById('owner_write').checked = false; } if (owner & 1) { document.getElementById('owner_exec').checked = true; } else { document.getElementById('owner_exec').checked = false; } if (group & 4) { document.getElementById('group_read').checked = true; } else { document.getElementById('group_read').checked = false; } if (group & 2) { document.getElementById('group_write').checked = true; } else { document.getElementById('group_write').checked = false; } if (group & 1) { document.getElementById('group_exec').checked = true; } else { document.getElementById('group_exec').checked = false; } if (other & 4) { document.getElementById('other_read').checked = true; } else { document.getElementById('other_read').checked = false; } if (other & 2) { document.getElementById('other_write').checked = true; } else { document.getElementById('other_write').checked = false; } if (other & 1) { document.getElementById('other_exec').checked = true; } else { document.getElementById('other_exec').checked = false; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 | checkboxName = "group" objectToCheck[4] = document.getElementById(checkboxName+'_read').checked; objectToCheck[2] = document.getElementById(checkboxName+'_write').checked; objectToCheck[1] = document.getElementById(checkboxName+'_exec').checked; for (var i = 4; i >= 1; i = i / 2){ if (right & i) { objectToCheck[i] = true; } else { objectToCheck[i] = false; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | types[0] = "owner"; types[1] = "group"; types[2] = "other"; var userset = new Array(); userset[0] = 5; userset[1] = 7; userset[2] = 1; var rights = new Array(); rights[4] = "read"; rights[2] = "write"; rights[1] = "exec"; for (var i = 0; i <= 2; i++){ for (var j = 4; j >= 1; j = j / 2){ if (userset[i] & j) document.getElementById(types[i]+'_'+rights[j]).checked = true; else document.getElementById(types[i]+'_'+rights[j]).checked = false; } } |
1 2 3 4 5 6 | function calculate(checkbox) { var opt = checkbox.id; var num = checkbox.value; |
1 2 3 4 5 6 7 8 9 10 | var checkboxChecked = false var checkboxValue = 4; var checkboxName = "owner"; var charToUse = (checkboxChecked ? true : "+") + (checkboxChecked ? false : "-"); eval(checkboxName + " = " + checkboxName + " " + charToUse + " " + checkboxValue); alert(owner); |
Jep, die waren prima. Maar hey, jij vraagt om korter, dan krijg je korterquote:Op donderdag 21 juni 2007 14:06 schreef Chandler het volgende:
Tnx, ik ga me hier eens over buigen, maar op zich waren de functies die ik geschreven had aardig goed dusen dat voor een JS leek
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | types[0] = "owner"; types[1] = "group"; types[2] = "other"; var userset = new Array(); userset[0] = 5; userset[1] = 7; userset[2] = 1; var rights = new Array(); rights[4] = "read"; rights[2] = "write"; rights[1] = "exec"; for (var i = 0; i <= 2; i++){ for (var j = 4; j >= 1; j = j / 2){ if (userset[i] & j) document.getElementById(types[i]+'_'+rights[j]).checked = true; else document.getElementById(types[i]+'_'+rights[j]).checked = false; } } |
1 |
1 2 3 4 5 6 7 8 9 10 11 | var userset = [5 , 7, 1]; var rights = ["read", "write", "exec"]; for (var i = 0; i < 3; ++i) { for (var j = 4; j >= 1; j /= 2) { document.getElementById(types[i] + '_' + rights[j]).checked = (userset[i] & j); } } |
Jep, zo moet er bij een "read" worden geprobeerd er vier punten af te halen. Dat is anders te doen, uiteraard, maar dit leek mij voor het overzicht wel handigquote:Op donderdag 21 juni 2007 17:17 schreef CraZaay het volgende:
SuperRembo: ik neem aan dat 'ie voor 'rights' niet voor niets 4, 2 en 1 als keys gebruikt heeft ipv 0, 1 en 2. Of mis ik iets?
Je hebt gelijk, daar heb ik overheen gekeken.quote:Op donderdag 21 juni 2007 17:17 schreef CraZaay het volgende:
SuperRembo: ik neem aan dat 'ie voor 'rights' niet voor niets 4, 2 en 1 als keys gebruikt heeft ipv 0, 1 en 2. Of mis ik iets?
Bahquote:Op donderdag 21 juni 2007 20:15 schreef wipes66 het volgende:
Voor de mensen die graag op een makkelijk manier ronde hoeken willen maken:
http://code.google.com/p/jquery-roundcorners-canvas/
Sommige dingen gaan nou eenmaal niet met CSS.quote:Op donderdag 21 juni 2007 21:28 schreef CraZaay het volgende:
[..]
Bah
Javascript is wat mij betreft voor gedrag en niet voor styling. Daar is CSS voor.
Tuurlijk wel. jQuery schrijft ook gewoon dynamisch HTML en CSS.quote:Op donderdag 21 juni 2007 23:20 schreef wipes66 het volgende:
[..]
Sommige dingen gaan nou eenmaal niet met CSS.
1 2 3 | <input onKeyUp="if(key= enter { submitajax(this.value) ; } "> </form> |
gaan we proberenquote:Op vrijdag 22 juni 2007 19:59 schreef CraZaay het volgende:
Niets aan die input doen maar een onsubmit op je form. Daarin de gewenste functie uitvoeren en een 'return false' om de normale submit tegen te houden.
En natuurlijk de normale submit ook laten werken voor de mensen die javascript uit hebben staan
quote:Op woensdag 27 juni 2007 20:40 schreef Chandler het volgende:
Vraagje; ik heb een selectbox met een stel opties. Waarvan 90% een value hebben en 10% niet. Nu wil ik dat alleen die opties met een value geselecteerd kunnen worden maar niet de opties zonder 'value'.
Hoe kan ik dit realiseren?
if (this.option[this.selectedIndex].value='') return false;
werkt helaas niet :{
1 2 3 | alert('This item has a value'); } |
Goed punt.quote:Op donderdag 28 juni 2007 15:06 schreef CraZaay het volgende:
Wat is het doel Chandler? Ben je niet goed af met <optgroup> toevallig?
Ja dat maakt zeker uit.quote:Op donderdag 28 juni 2007 16:01 schreef super-muffin het volgende:
Maakt dit qua preformance wat uit of niet?
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | for (var i = 0; i < a.length; i++) { Foo(a[i]); } // sneller for (var i = 0, l = a.length; i < l; ++i) { Foo(a[i]); } // nog sneller (maar in omgekeerde volgorde) var i = a.length; while (i--) { Foo(a[i]); } |
Die laatste is toch simpel te gebruiken (ook andersom)quote:Op donderdag 28 juni 2007 16:48 schreef SuperRembo het volgende:
[..]
Ja dat maakt zeker uit.
[ code verwijderd ]
De laatste versie is het snelst, maar die is wat minder duidelijk, dus die zou ik alleen gebruiken als de snelheid heel belangrijk is.
1 2 3 4 5 6 7 | var j = 0; while (i--) { j++; Foo(a[j]); } |
Goed die laatste! Ga ik meteen inbouwen in m'n project waarbij 500 objecten in een array gestopt moeten worden in een loopquote:Op donderdag 28 juni 2007 16:48 schreef SuperRembo het volgende:
De laatste versie is het snelst, maar die is wat minder duidelijk, dus die zou ik alleen gebruiken als de snelheid heel belangrijk is.
Maar is dat dan niet dynamisch? Als ik "a = document.getElementById('hi').length" pak, dan krijg ik toch elke keer als ik naar "a" vraag de dan geldende lengte van "hi" ? Of slaat hij deze waarde enkel 1 maal op?quote:Op donderdag 28 juni 2007 16:15 schreef Chandler het volgende:
geen idee hehe.
Maar denk dat het wel wat uitmaakt, in PHP iig wel
De parser moet anders constant lezen hoeveel items er in een bepaalde array zitten en dat hoeft de parser niet te doen als jij die gegevens in een tijdelijke variabel zet!
1 2 3 4 5 6 | i = 0 while (i < a) b.removechild(); } |
a is op dat moment een statische variabele...quote:Op vrijdag 29 juni 2007 19:41 schreef Geqxon het volgende:
[..]
Maar is dat dan niet dynamisch? Als ik "a = document.getElementById('hi').length" pak, dan krijg ik toch elke keer als ik naar "a" vraag de dan geldende lengte van "hi" ? Of slaat hij deze waarde enkel 1 maal op?
1 2 3 | return document.getElementById('hi').length; }; |
document.getElementById("div").elements.length? Of bedoel je dat niet?quote:Op vrijdag 29 juni 2007 21:11 schreef SuperRembo het volgende:
Als je een aantal keer de length property van een element wil opvragen dan kan je wel het element zelf in een variable zetten. Dat scheelt een heleboel opzoekwerk in de DOM.
Maar volgens mij is er geen enkel html element die standard een length property heeft
1 2 3 4 5 6 7 8 | <!-- function add() { document.getElementById('cijferinvoer').innerHTML=document.getElementById('cijferinvoer').innerHTML + '<tr><th>CC</th><td><input type="text" name="cijfer[]" AUTOCOMPLETE="of"></td><td><input type="text" name="weging[]" AUTOCOMPLETE="of"></td>'; } //--> </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function showExtraContent() { var extraContent = document.getElementById('extraContent'); extraContent.style.display = 'block'; } </script> <p> standaard content bla bla bla</p> <div id="extraContent" style="display: none;"> bla bla bla extra content bla bla </div> <a href="#" onclick="showExtraContent(); return false;">klik voor extra content</a> |
maar dan kunnen er niet meerdere rijen toegevoegd worden.quote:Op zaterdag 14 juli 2007 17:19 schreef Farenji het volgende:
De makkelijkste en netste oplossing is niet het toevoegen via JS en innerHTML, maar dmv een div met style "display: none;" die je mbv javascript op "display: block;" zet. Zo zal de state van je form gewoon behouden blijven en hoef je ook geen html in je JS code op te nemen (want dat is).
Voorbeeldje:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | { var tbody = document.getElementById ('cijferinvoer').getElementsByTagName("tbody")[0]; var row = document.createElement("tr") var th1 = document.createElement("th") th1.appendChild(document.createTextNode("CC")) var td1 = document.createElement("td") var a = '<input type="text" name="var1[]" AUTOCOMPLETE="off">' td1.appendChild(document.createTextNode(a)) var td2 = document.createElement("td") td2.appendChild (document.createTextNode('<input type="text" name="var2[]" AUTOCOMPLETE="off">')) row.appendChild(th1); row.appendChild(td1); row.appendChild(td2); tbody.appendChild(row); |
quote:CC <input type="text" name="var1[]" AUTOCOMPLETE="off"> <input type="text" name="var1" AUTOCOMPLETE="off">
1 2 | td1.appendChild(document.createTextNode(a)) |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |