1 2 3 | alert(x); |
1 2 3 | alert(x.length); |
Ja.quote:
Het kan (zeker in jouw geval) ook wel zonder JSON library.quote:Op vrijdag 1 juni 2007 13:02 schreef Chandler het volgende:
Ik begrijp dus dat het niet mogelijk is om XML uit te lezen zonder responseXML te gebruiken in IE6 en FF?
-edit-
Ik heb dat JSON bekeken en zie dat dat eingelijk alleen voor PHP 5.0.2 issjeez...
1 2 3 4 5 6 7 8 9 10 | <action>layouts</action> <count>4</count> <layouts> <item>Default</item> <item>GFX</item> <item>Test</item> <item>Woei</item> </layouts> </gfxpoll> |
1 |
1 |
Code for parsing and generating JSON (the latter is also known as "stringifying") is available for the following languages: ActionScript, C, C++, C#, ColdFusion, Common Lisp, Delphi/Object pascal, E, Erlang, Haskell, Java, JavaScript, Lasso (programming language), Limbo, Lua, ML, Objective-C, Objective CAML, Perl, PHP, Python, Rebol, Ruby, Smalltalk and Tcl.quote:Op vrijdag 1 juni 2007 13:02 schreef Chandler het volgende:
Ik heb dat JSON bekeken en zie dat dat eingelijk alleen voor PHP 5.0.2 issjeez...
Good for you (en SuperRembo). En in welke sticky in DIG staat daar een link naartoe?quote:Op vrijdag 1 juni 2007 14:44 schreef fokME2 het volgende:
[..]
Ja.![]()
http://wiki.fok.nl/index.php/OP/Javascript !! Daar! (overigens ook in voorgaande topics te vinden..)
Stond gewoon in de OP van het vorige deel hoor?quote:Op vrijdag 1 juni 2007 19:20 schreef CraZaay het volgende:
[..]
Good for you (en SuperRembo). En in welke sticky in DIG staat daar een link naartoe?
Veel plezier ermee
Waarom heb je daar een library voor nodig?quote:Op vrijdag 1 juni 2007 18:50 schreef Chandler het volgende:
Klopt maar als je dan de library bekijkt zie je alleen een onderdeel voor php5.0.1 staan en ook een lb voor php 4.3.0 en hoger maar die schijnt weer extreem sloom te zijnvet leuk
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 | <!-- div.example { text-align: center; padding: 5px; background-color: #F4F3EE; font-family: Arial; font-size: 12px; color: #000000; font-weight: normal; font-style: normal; text-decoration: none; } a.example { font-family: Arial; font-size: 12px; color: #003366; font-weight: bold; font-style: italic; text-decoration: none; } a.example:hover { font-family: Arial; font-size: 12px; color: #003366; font-weight: bold; font-style: italic; text-decoration: underline; } --> </style> |
1 2 3 | document.getElementById(styleName).style.fontSize = sizeValue+'px'; } |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var arr = new Array(); var item = new Array(); item[1] = 'x'; item[3] = 'y'; arr[item[1]] = 'p'; arr[item[3]] = 'q'; function test() { for( a in arr ) { alert( a + '-' + arr[a] ); } } </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <td>Row 1</td> <td>Row 1</td> <td>Row 1</td> <td>Row 1</td> <td>Row 1</td> </tr> <tr id="item[2]" onmouseover="Mover(this, event, 1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" class="item"> <td>Row 2</td> <td>Row 2</td> <td>Row 2</td> <td>Row 2</td> <td>Row 2</td> </tr> |
1 |
1 2 3 4 5 6 7 8 9 10 | { var str = ""; for (x in selected) { str += x + "=" + selected[x] + " -- "; } alert(selected.length); } |
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 | .item { background-color: gray; color: black; } .item_hover { background-color: blue; color: yellow; } .item_hover { background-color: red; color: yellow; } </style> <script language="javascript"> var selectedItems; var selected = new Array(); function Mover(id, event, inout) { // catch mouse buttons var mouseButton = false; if (event.which == null) { /* IE case */ mouseButton = (event.button < 2) ? "left" : ((event.button == 4) ? "middle" :"right"); } else { /* All others */ mouseButton = (event.which < 2) ? "left" : ((event.which == 2) ? "middle" : "right"); } // mouseaction? if (mouseButton != false && inout == -1) { tStats("mousebutton found"); if (mouseButton == "left") { tStats("left mousebutton"); // select or deselect item if (selected[id.id]) { // verwijder selected[id]; delete selected[id.id]; } else { selected[id.id] = id.id } } else { // menu alert("menu on item " + id.id); } dont(event); } if (inout == 0) { if (!selected[id.id]) { id.className = "item"; } else { id.className = "item_selected"; } } else if (inout == -1) { tStats("-1"); } else { id.className = "item_hover"; } mouseButton = false; } function dont(event) { if (event.preventDefault) event.preventDefault(); else event.returnValue= false; return false; } function tStats(x) { y = document.getElementById('stats'); z = x + '<br />' + y.innerHTML; y.innerHTML = z; } function getSelected() { var str = ""; var cnt = 0; for (x in selected) { str += "Selected option: " + selected[x] + " -- n"; cnt++; } alert(cnt + "n" + str); } </script> <table> <tr> <th>Cell 1</th> <th>Cell 2</th> <th>Cell 3</th> <th>Cell 4</th> <th>Cell 5</th> </tr> <tr id="item[1]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item"> <td>Row 1</td> <td>Row 1</td> <td>Row 1</td> <td>Row 1</td> <td>Row 1</td> </tr> <tr id="item[2]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item"> <td>Row 2</td> <td>Row 2</td> <td>Row 2</td> <td>Row 2</td> <td>Row 2</td> </tr> <tr id="item[3]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item"> <td>Row 3</td> <td>Row 3</td> <td>Row 3</td> <td>Row 3</td> <td>Row 3</td> </tr> <tr id="item[4]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item"> <td>Row 4</td> <td>Row 4</td> <td>Row 4</td> <td>Row 4</td> <td>Row 4</td> </tr> <tr id="item[5]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item"> <td>Row 5</td> <td>Row 5</td> <td>Row 5</td> <td>Row 5</td> <td>Row 5</td> </tr> <tr id="item[6]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item"> <td>Row 6</td> <td>Row 6</td> <td>Row 6</td> <td>Row 6</td> <td>Row 6</td> </tr> <tr id="item[7]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item"> <td>Row 7</td> <td>Row 7</td> <td>Row 7</td> <td>Row 7</td> <td>Row 7</td> </tr> <tr id="item[8]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item"> <td>Row 8</td> <td>Row 8</td> <td>Row 8</td> <td>Row 8</td> <td>Row 8</td> </tr> </table> <input type="button" onClick="getSelected()" value="Selected items"> <input type="button" onClick="document.getElementById('stats').innerHTML = ''" value="Clear pre"> <pre id="stats" name="stats" style="width: 400px; height: 250px; overflow: auto;">Hello</pre> |
Tussendoor ergens in een variabele opslaan of de pagina herladen.quote:Op donderdag 7 juni 2007 15:56 schreef Chandler het volgende:
Kleine andere vraag.
Stel ik heb een element een andere className gegeven (this.className = 'nieuweclass') hoe kan ik deze nieuwe class dan resetten? oftewel de oude class terug halen? zonder een andere class te gebruiken?
De huidige class is niet td, de huidige class is leeg met element td. Dus als je className leeg maakt, dan gebruikt hij de 100px rule weer, dat is dan de meest passende.quote:Op donderdag 7 juni 2007 16:07 schreef Chandler het volgende:
Je moet het zien als.
Ik heb een TD daar staat een standaard class op
td { font-size: 100px }
nu heb ik ook een class
td .small { font-size: 12px; }
als ik nu met een onmouseover="this.className='small'" zet wil ik met onmouseout de class resetten naar de huidige class (td). How do i do this?
1 |
Iets later. Vreemd, alles werkt weer. Maar dit snap ik dan weer niet:quote:Op maandag 11 juni 2007 14:19 schreef Geqxon het volgende:
Dan schuif ik de fout toch naar mijn eigen website. Op het moment kan ik er niet aan werken, maar ik hou je deze avond op de hoogte
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 | <!-- tabel //--> </div> <script language="javascript"> function addCell(tableRow, pos, text, width) { var tableCell = tableRow.insertCell(pos); tableCell.innerHTML = text ; tableCell.style.width = width; } table = document.createElement("Table"); for (x = 0; x < 10; x++) { var tableRow = table.insertRow(x); addCell(tableRow, 0, x + "&1", "100px"); addCell(tableRow, 1, x + "&2", "200px"); addCell(tableRow, 2, x + "&3", "50px"); addCell(tableRow, 3, x + "&4", "200px"); /* for (y = 0; y < 5; y++) { var tableCell = tableRow.insertCell(y); tableCell.innerHTML = x +'hello'+y ; } */ } document.getElementById('test').appendChild(table); alert('klik hier en de tabel verdwijnt!'); document.getElementById('test').innerHTML = ''; </script> |
1 2 3 4 | var theadRow = thead.insertRow(0); var theadHeader = thead.createElement("th"); theadHeader.innerHTML = 'Header'; |
1 2 | table.appendChild(tbody); |
quote:Op woensdag 20 juni 2007 10:28 schreef Chandler het volgende:
Ik heb je code even overgenomen, maar krijg een thead niet voor elkaar...tbody is trouwens gelukt!
[ code verwijderd ]
Bovenstaande code werkt niet. Ook insertCell geeft een fout. Wil gewoon een TH toevoegen aan de thead en daarin een stuk tekst plaatsen
1 2 3 4 5 | var theadRow = thead.insertRow(0); var theadHeader = document.createElement("th"); theadHeader.innerHTML = 'Header'; theadRow.appendChild(theadHeader); |
Ik zou een andere oplossing zoeken. Een edit knopje is toch ook veel duidelijker?quote:The dblclick event is rarely used. Even when you use it, you should be sure never to register both an onclick and an ondblclick event handler on the same HTML element. Finding out what the user has actually done is nearly impossible if you register both.
1 2 3 4 | tableRow.onclick = eval("function() { alert('select'); }"); tableRow.onmouseover = eval("function() { this.className='item_hover'; }"); tableRow.onmouseout = eval("function() { this.className=''; }"); |
He, wat zitten die rot-browsers toch onlogisch in elkaarquote:Op woensdag 20 juni 2007 17:36 schreef RM-rf het volgende:
createTextNode creeert een textnode
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | <tr> <td colspan=5>Rechten caculator gemaakt door Eric!</td> </tr> <tr> <td>Rechten</td> <td>Eigenaar</td> <td>Groep</td> <td>Anders</td> <td> </td> </tr> <tr> <td>Lezen</td> <td><input type="checkbox" id="owner_read" onClick="calculate(this, 4);"></td> <td><input type="checkbox" id="group_read" onClick="calculate(this, 4);"></td> <td><input type="checkbox" id="other_read" onClick="calculate(this, 4);"></td> <td> </td> </tr> <tr> <td>Schrijven</td> <td><input type="checkbox" id="owner_write" onClick="calculate(this, 2);"></td> <td><input type="checkbox" id="group_write" onClick="calculate(this, 2);"></td> <td><input type="checkbox" id="other_write" onClick="calculate(this, 2);"></td> <td> </td> </tr> <tr> <td>Uitvoeren</td> <td><input type="checkbox" id="owner_exec" onClick="calculate(this, 1);"></td> <td><input type="checkbox" id="group_exec" onClick="calculate(this, 1);"></td> <td><input type="checkbox" id="other_exec" onClick="calculate(this, 1);"></td> <td> </td> </tr> <tr> <td>Nummeriek</td> <td><input type="text" id="num_owner_total" style="width: 15px;" disabled></td> <td><input type="text" id="num_group_total" style="width: 15px;" disabled></td> <td><input type="text" id="num_other_total" style="width: 15px;" disabled></td> <td>= <input type="text" name="chmod_oct" id="chmod_oct" style="width: 75px;" onKeyUp="setRights(this.value);"></td> </tr> <tr> <td>Symbolisch</td> <td><input type="text" id="sym_owner_total" style="width: 35px;" disabled></td> <td><input type="text" id="sym_group_total" style="width: 35px;" disabled></td> <td><input type="text" id="sym_other_total" style="width: 35px;" disabled></td> <td>= <input type="text" name="chmod_sym" id="chmod_sym" style="width: 75px;" disabled></td> </tr> </table> <script language="javascript"> var owner = 0; var group = 0; var other = 0; function calculate(id, num) { var opt = document.getElementById(id.id); if (opt.checked == true) { switch (opt.id.substr(0, 5)) { case "owner": owner = owner + num; break; case "group": group = group + num; break; case "other": other = other + num; break; } } else { switch (opt.id.substr(0, 5)) { case "owner": owner = owner - num; break; case "group": group = group - num; break; case "other": other = other - num; break; } } displayNumbers(owner, group, other); } function setRights(inn) { if (parseFloat(inn.substr(0, 1)) > 7 || parseFloat(inn.substr(1, 1)) > 7 || parseFloat(inn.substr(2, 1)) > 7 ) { alert("Alle nummers moeten 7 of lager zijn!"); } else if (inn.length > 3) { alert("Het nummer mag niet meer dan 3 cijfers bevatten"); } if (inn.substr(0, 1)) { owner = parseFloat(inn.substr(0, 1)); } else { owner = 0; } if (inn.substr(1, 1)) { group = parseFloat(inn.substr(1, 1)); } else { group = 0; } if (inn.substr(2, 1)) { other = parseFloat(inn.substr(2, 1)); } else { other = 0; } if (owner & 4) { document.getElementById('owner_read').checked = true; } else { document.getElementById('owner_read').checked = false; } 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; } displayNumbers(owner, group, other); } function displayNumbers(owner, group, other) { // nummeric document.getElementById('chmod_oct').value = owner + "" + (group > 0 ? group : "") + "" + (other > 0 ? other : ""); document.getElementById('num_owner_total').value = owner; document.getElementById('num_group_total').value = group; document.getElementById('num_other_total').value = other; // symbolic document.getElementById('sym_owner_total').value = convertToSym(owner); document.getElementById('sym_group_total').value = convertToSym(group); document.getElementById('sym_other_total').value = convertToSym(other); document.getElementById("chmod_sym").value = "-" + convertToSym(owner) + convertToSym(group) + convertToSym(other); } function convertToSym(num) { var out = ""; if (num & 4) { out += "r"; } else { out += "-"; } if (num & 2) { out += "w"; } else { out += "-"; } if (num & 1) { out += "x"; } else { out += "-"; } return out; } setRights('666'); </script> |
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)) |
http://www.w3.org/Submission/web-forms2/#the-autocompletequote:Op zaterdag 14 juli 2007 17:32 schreef Farenji het volgende:
WTF is dat AUTOCOMPLETE=off? Dat is sowieso geen geldige opmaak. Het zal een of andere custom toevoeging zijn voor een of ander script maar het zal hoogstwaarschijnlijk de reden zijn waarom je zo'n node niet mbv DOM kan aanmaken.
createElement, ga ik proberen...quote:Op zaterdag 14 juli 2007 17:37 schreef SuperRembo het volgende:
Autocomplete is gewoon een attribute om te voorkomen dat je browser de waarde van het veld automatisch aanvult.
Het probleem is dat je natuurlijk niet met createTextNode en een html string een invoerveld kan maken. Dat moet je ook via createElement doen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | { for (i = 0; i < document.images.length; i++) { while ( !document.images[i].complete ) { break; } if ( document.images[i].width > 640 ) { document.images[i].width = 640; } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | { img=document.getElementById("id").getElementsByTagName("img"); for (i = 0; i < img.length; i++) { while ( !img[i].complete ) { break; } if ( img[i].width > 640 ) { img[i].width = 640; } } } |
quote:Op donderdag 19 juli 2007 15:40 schreef Spockjuh_ het volgende:
elke hulp is welkom..om het wat duidelijker te maken, het geheel moet komen in een geeklog cms systeem, de site vind je onder mijn profiel, kan bijna niet missen!
quote:Not Found
The requested URL /suspended.page/ was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
1 2 3 4 | plaatje.src = 'blaat.gif'; var breedte = plaatje.width; var hoogte = plaatje.height; |
1 2 3 4 5 | plaatje.setAttribute('src', 'plaatje.gif'); eenDiv.appendChild(plaatje); var breedte = plaatje.width; var hoogte = plaatje.height; |
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 | var metError = false; var plaatje = new Image(); plaatje.src = 'plaatje.gif'; plaatje.onLoad = plaatjeGeladen; function plaatjeGeladen() { var timeOut; var plaatjeCompleetGeladen = false; while (!plaatjeCompleetGeladen) { timeOut = new Date(); if (plaatje.complete) { plaatjeCompleetGeladen = true; metError = false; } // timeout op laten treden na 10s if (timeOut.getTime() - startTijd.getTime() >= 10000) { plaatjeCompleetGeladen = true; metError = true; } } } var breedte = plaatje.width; var hoogte = plaatje.height; |
Hetzelfde als height en width?quote:Op vrijdag 20 juli 2007 08:56 schreef Geqxon het volgende:
Wat doen clientHeight en offsetHeight bij je?
Tja, nu weet ik dat de browsers de volgende dingen ondersteunen:quote:Op vrijdag 20 juli 2007 09:21 schreef SuperRembo het volgende:
De onload event op plaatjes is in IE en FF geloof ik nog all buggy. Kijk eens naar de user_images() functie die hier op FOK (en op GoT) wordt gebruikt om te grootte plaatjes automatisch te verkleinen.
1 2 3 4 5 | if (image.width > 0) { blaat(); } ... |
1 2 3 4 | achtergrond.offsetWidth: 0 achtergrond.naturalWidth: undefined achtergrond.width: 550 |
1 2 3 4 | achtergrond.offsetWidth: 0 achtergrond.naturalWidth: undefined achtergrond.width: 550 |
1 2 3 4 | achtergrond.offsetWidth: 0 achtergrond.naturalWidth: 0 achtergrond.width: 0 |
1 2 3 4 | achtergrond.offsetWidth: 0 achtergrond.naturalWidth: 550 achtergrond.width: 550 |
Dat komt waarschijnlijk omdat je de property opvraagt als het plaatje noet niet (volledig) is geladen. Hoe je dat afvangt kan je dus even van die user_images() functie afkijken.quote:Op vrijdag 20 juli 2007 10:36 schreef CiQNiZ het volgende:
werkt prima in IE en Opera. Niet in Firefox.
Ik vraag de properties op TOTdat deze geset zijn. Dus dat houdt in dat ik wacht tot het plaatje geladen is (via een while-lus). Na 4 seconden zeg ik stop (duurt te lang, want het is lokaal), en dan heeft Firefox nog niks bijzonders gedaan. IE en Opera die komen niet eens zover, die zijn dan al lang klaar!quote:Op vrijdag 20 juli 2007 11:07 schreef SuperRembo het volgende:
[..]
Dat komt waarschijnlijk omdat je de property opvraagt als het plaatje noet niet (volledig) is geladen. Hoe je dat afvangt kan je dus even van die user_images() functie afkijken.
Dat komt omdat er tijdens de while loop geen events worden afgehandeld. Waarschijnlijk staat op deze maniet de cpuload nog op 100% ook. Als je wil kijken of het plaatje na x seconden nog niet geladen is dan kan je beter setTimeout() gebruiken.quote:Op vrijdag 20 juli 2007 11:12 schreef CiQNiZ het volgende:
[..]
Ik vraag de properties op TOTdat deze geset zijn. Dus dat houdt in dat ik wacht tot het plaatje geladen is (via een while-lus). Na 4 seconden zeg ik stop (duurt te lang, want het is lokaal), en dan heeft Firefox nog niks bijzonders gedaan. IE en Opera die komen niet eens zover, die zijn dan al lang klaar!
kunnen jullie nog eens een poging wagen, de boel draait weer..quote:Op donderdag 19 juli 2007 15:40 schreef Spockjuh_ het volgende:
als javascript nono zie ik geen ander keus dan me te wenden tot de experts hier...
ik zoek nameljik een tool die mij kan helpen met het zichtbaar maken van een foto plus informatietext wanneer je over een naam gaat met de muis. Ik heb al een script gevonden maar dat is hogere school werk, iets wat mij dus telang gaat duren.
Om een duidelijk beeld te geven zoek ik het volgende:
de gebruiker gaat met de muis over en/of klikt op de naam die er staat. op dat moment komt er een popup scherm naar voren waar een foto instaat en wat begeleidende informatie (mogelijk ook een clickable url als dat mogelijk is) . zoals ik al zei is mijn kennis wat betreft java echt minimaal dus zoek of een goede script die gebruksvriendelijk is OF iemand die tijd over heeft en me kan helpen om iig een begin te maken met dit alles..
elke hulp is welkom..om het wat duidelijker te maken, het geheel moet komen in een geeklog cms systeem, de site vind je onder mijn profiel, kan bijna niet missen!
Het probleem anders oplossen? Kun je niet alles een bepaalde class-name geven? getElements() oid?quote:Op vrijdag 27 juli 2007 16:13 schreef Swetsenegger het volgende:
Als ik meerdere elementen met hetzelfde id heb in een source. Hoe kan ik dan met javascript de juiste vinden?
document.getElementById geeft volgens mij de eerste terug?
neen... dat kan nietquote:Op vrijdag 27 juli 2007 16:21 schreef Geqxon het volgende:
[..]
Het probleem anders oplossen? Kun je niet alles een bepaalde class-name geven? getElements() oid?
En staan alle items niet toevallig in bijvoorbeeld een tabel? Je zou dan een getElements kunnen uitvoeren, dan krijg je een array met alle elementen binnen deze tabel. Vervolgens een for-loopje er overheen, een if-statement (if element.id == 'swets'), en zo ja > Iets doen.quote:Op vrijdag 27 juli 2007 16:28 schreef Swetsenegger het volgende:
[..]
neen... dat kan niet
het is niet mijn source
nou dat is vrij lastig. er is de niet w3c document.all functie. Maar de juiste syntax om het tweede element met hetzelfde id te vinden is lastigquote:Op vrijdag 27 juli 2007 16:33 schreef Geqxon het volgende:
[..]
En staan alle items niet toevallig in bijvoorbeeld een tabel? Je zou dan een getElements kunnen uitvoeren, dan krijg je een array met alle elementen binnen deze tabel. Vervolgens een for-loopje er overheen, een if-statement (if element.id == 'swets'), en zo ja > Iets doen.
quote:Op vrijdag 27 juli 2007 16:38 schreef Swetsenegger het volgende:
[..]
nou dat is vrij lastig. er is de niet w3c document.all functie. Maar de juiste syntax om het tweede element met hetzelfde id te vinden is lastig :)
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 | <div id="negger">Data</div> <div id="swets">Data</div> <div id="negger">Data</div> <div id="swets">Data</div> <div id="negger">Data</div> </div> <script> var parentdiv = "customerdatafield" var childdiv = "swets"; var customerArray = document.getElementById(parentdiv).getElementsByTagName("div"); for (i = 0; i < customerArray.length; i++){ var customer = customerArray[i]; if (customer.id == childdiv){ customer.style.backgroundColor = "#FF9900" } } </script> |
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 | /*@cc_on @*/ /*@if (@_jscript_version >= 5) // JScript gives us Conditional compilation, we can cope with old IE versions. // and security blocked creation of the objects. try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } @end @*/ if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } function BarcodeCheck(value) { xmlhttp.open("GET", "ajax_check.php?request=barcodecheck&barcode="+value,true);//method, target, async (set always true!) xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4) { document.getElementById('BarcodeGeldigheid').innerHTML = xmlhttp.responseText; } } xmlhttp.send(null); } |
1 |
1 2 | <script language="javascript">insRow()</script> |
ik heb er al op gegoogled maar ik snap er echt geen fuck van...quote:Op zondag 19 augustus 2007 20:53 schreef Geqxon het volgende:
Google eens wat op eval. Doet exact wat jij wilt.
Zo'n functie heb ik toevallig deze week nog ergens gejat ;)quote:Op maandag 20 augustus 2007 15:34 schreef Qunix het volgende:
In het PHP topic vroeg ik het volgende:
Ik heb een formulier en ik wil een voorbeeld zien voordat het gesubmit wordt via een button. Een voorbeeld verschijnt in een popup... Alle inhoud komt alleen niet aan in de popup. Wat doe ik fout?
Inmiddels ben ik erachter dat het eventueel wel mogelijk is met Javascript. Na wat zoeken kom ik niet verder dan een voorbeeld te krijgen op dezelfde pagina.
Kan iemand mij helpen?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | winFeatures = 'left=' + (screen.availWidth-10-width)/2 + ',top=' + (screen.availHeight-30-height)/2 + ',scrollbars=' + scrollbars + ',resizable=' + resizable + ',width=' + width + ',height=' + height + ',toolbar=0,location=0,status=0,menubar=0' window.open(theURL, winName, winFeatures); } //Function to open preview window function OpenPreviewWindow(formName){ now = new Date; submitAction = formName.action; submitTarget = formName.target; winOpener('','preview',1,1,640,400) formName.action = 'forum.php?c=preview'; formName.target = 'preview'; formName.submit(); formName.action = submitAction; formName.target = submitTarget; } |
1 |
wat je eigenlijk doet is gewoon een onclick-window-open() op de button...quote:Op maandag 20 augustus 2007 15:34 schreef Qunix het volgende:
In het PHP topic vroeg ik het volgende:
Ik heb een formulier en ik wil een voorbeeld zien voordat het gesubmit wordt via een button. Een voorbeeld verschijnt in een popup... Alle inhoud komt alleen niet aan in de popup. Wat doe ik fout?
Inmiddels ben ik erachter dat het eventueel wel mogelijk is met Javascript. Na wat zoeken kom ik niet verder dan een voorbeeld te krijgen op dezelfde pagina.
Kan iemand mij helpen?
1 |
1 2 3 4 5 6 7 8 9 10 | var data = window.opener.document.getElementById('content').value; var title = window.opener.document.getElementById('title').value; var subtitle = window.opener.document.getElementById('subtitle').value; var ender = window.opener.document.getElementById('ender').value; var regExp = new RegExp("n","g"); var result = data.replace(regExp,"<br/>"); document.writeln('<b>'+subtitle+'</b><br/><br/>'); document.writeln(result); </script> |
hoe ik dmv ajax er 3 extra rows bij kan krijgen, want javascript wordt niet uitgevoerd als ik ajax outputquote:Op zondag 19 augustus 2007 23:20 schreef Farenji het volgende:
Zo moeilijk is dat toch niet? Wat snap je niet?
1 |
quote:Op woensdag 29 augustus 2007 16:01 schreef Chandler het volgende:
Stel ik heb een array in js
vb:
[ code verwijderd ]
hoe kan ik dan blaat en 123 uitlezen zoals in php met foreach ($x as $key => $value)
Anyone?
1 2 3 4 5 6 | var itemvalue = arrayx[itemkey]; alert (itemkey); alert(itemvalue); } |
1 |
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 44 45 46 47 48 49 50 | <tr> <td>Scherm breedte</td> <td><div id="pbreedte"></div></td> </tr> <tr> <td>Center scherm</td> <td><div id="pcenter"></div></td> </tr> <tr> <td>Positie links</td> <td><div id="plinks"></div></td> </tr> <tr> <td>Positie rechts</td> <td><div id="prechts"></div></td> </tr> </table> <div id=centermidden style="position: absolute; top: 0; left: 0;display: none; border: 1px solid black; height: 300px; width: 160px; text-align: center;"> midden</div> <div id=centerlinks style="position: absolute; top: 0; left: 0;display: none; border: 1px solid green; height: 300px; width: 160px;">Links</div> <div id=centerrechts style="position: absolute; text-align: right; top: 0; left: 0;display: none; border: 1px solid orange; height: 300px; width: 160px;">Rechts</div> <script language="javascript"> function adBox() { contentSize = 500; document.getElementById('pbreedte').innerHTML = document.documentElement['offsetWidth']; document.getElementById('pcenter').innerHTML = ((document.documentElement['offsetWidth'] -2)/2 - 80); midden = document.getElementById('pcenter').innerHTML; document.getElementById('plinks').innerHTML = ((document.documentElement['offsetWidth']/2) - (contentSize /2) - 160); document.getElementById('centerlinks').style.left = ((document.documentElement['offsetWidth']/2) - (contentSize /2) - 160); document.getElementById('centerlinks').style.display = 'block'; document.getElementById('prechts').innerHTML = ((document.documentElement['offsetWidth']/2) + (contentSize /2)); document.getElementById('centerrechts').style.left = ((document.documentElement['offsetWidth']/2) + (contentSize /2)); document.getElementById('centerrechts').style.display = 'block'; document.getElementById('centermidden').style.left = document.getElementById('pcenter').innerHTML; document.getElementById('centermidden').style.display = 'block'; } window.onresize = adBox(); adBox(); </script> |
1 |
1 2 3 4 5 6 | window.addEventListener("load", dothis, false) else if (window.attachEvent) //IE exclusive method for binding an event window.attachEvent("onload", dothis) else if (document.getElementById) //support older modern browsers window.onload=dothis |
1 |
1 |
Fout: uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: file:///.../desktop/centerscreen.html :: <TOP_LEVEL> :: line 51" data: no]quote:Op donderdag 30 augustus 2007 12:13 schreef super-muffin het volgende:
[ code verwijderd ]
En wat als je er "resize" in plaats van "onresize" van maakt, en je geen haakjes achter je functie plakt?quote:Op donderdag 30 augustus 2007 12:07 schreef Chandler het volgende:
Leuke foutmelding van FF:
Fout: uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: file:///..../desktop/centerscreen.html :: <TOP_LEVEL> :: line 51" data: no]
Foutieve code
[ code verwijderd ]
Ook foute code maar zonder error
[ code verwijderd ]
Beiden werken trouwens niet in FF
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | <head> <title>text resize</title> </head> <body onResize="adBox();"> <table> <tr> <td>Scherm breedte</td> <td><div id="pbreedte"></div></td> </tr> <tr> <td>Center scherm</td> <td><div id="pcenter"></div></td> </tr> <tr> <td>Positie links</td> <td><div id="plinks"></div></td> </tr> <tr> <td>Positie rechts</td> <td><div id="prechts"></div></td> </tr> </table> <div id=centermidden style="position: absolute; top: 0; left: 0;display: none; border: 1px solid black; height: 300px; width: 160px; text-align: center;"> midden</div> <div id=centerlinks style="position: absolute; top: 0; left: 0;display: none; border: 1px solid green; height: 300px; width: 160px;">Links</div> <div id=centerrechts style="position: absolute; text-align: right; top: 0; left: 0;display: none; border: 1px solid orange; height: 300px; width: 160px;">Rechts</div> <script language="javascript"> function adBox() { contentSize = 500; document.getElementById('pbreedte').innerHTML = document.documentElement['offsetWidth']; document.getElementById('pcenter').innerHTML = ((document.documentElement['offsetWidth'] -2)/2 - 80); midden = document.getElementById('pcenter').innerHTML; document.getElementById('plinks').innerHTML = ((document.documentElement['offsetWidth']/2) - (contentSize /2) - 160); document.getElementById('centerlinks').style.left = ((document.documentElement['offsetWidth']/2) - (contentSize /2) - 160); document.getElementById('centerlinks').style.display = 'block'; document.getElementById('prechts').innerHTML = ((document.documentElement['offsetWidth']/2) + (contentSize /2)); document.getElementById('centerrechts').style.left = ((document.documentElement['offsetWidth']/2) + (contentSize /2)); document.getElementById('centerrechts').style.display = 'block'; document.getElementById('centermidden').style.left = document.getElementById('pcenter').innerHTML; document.getElementById('centermidden').style.display = 'block'; } if (window.addEventListener) //DOM method for binding an event { window.addEventListener("resize", adBox(), true) } else if (window.attachEvent) //IE exclusive method for binding an event { window.attachEvent("resize", adBox()) } else if (document.getElementById) //support older modern browsers { window.resize = adBox(); } adBox(); </script> </body> </html> |
1 2 3 4 5 6 7 8 9 10 | alert("Yoob"); } if (window.addEventListener) //DOM method for binding an event window.addEventListener("resize", showMessage, false) else if (window.attachEvent) //IE exclusive method for binding an event window.attachEvent("onresize", showMessage) else if (document.getElementById) //support older modern browsers window.onresize=showMessage |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | { if (obj.addEventListener) obj.addEventListener( type, fn, false ); else if (obj.attachEvent) { obj["e"+type+fn] = fn; obj[type+fn] = function() { obj["e"+type+fn]( window.event ); } obj.attachEvent( "on"+type, obj[type+fn] ); } } function resizeHandler(e) { // ... } addEvent(window, "resize", resizeHandler); |
Je moet natuurlijk wel de twee haakjes achter adBox weghalen, als je hem in een event-handler dondert.quote:Op donderdag 30 augustus 2007 13:20 schreef Chandler het volgende:
Het werkt nu wel iig, maar zie eingelijk geen verschilwhat happend?
Doet dit niet basicly hetzelfde?quote:Op donderdag 30 augustus 2007 13:24 schreef SuperRembo het volgende:
Met de addEvent/removeEvent functies van quirksmode.org:
[ code verwijderd ]
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 | ... adsense enzo.... </div> <script language="javascript"> function adBox() { contentSize = 720; midden = ((document.documentElement['offsetWidth'] -2)/2 - 80); document.getElementById('centerrechts').style.left = ((document.documentElement['offsetWidth']/2) + (contentSize /2)); document.getElementById('centerrechts').style.display = 'block'; } function addEvent( obj, type, fn ) { if (obj.addEventListener) obj.addEventListener( type, fn, false ); else if (obj.attachEvent) { obj["e"+type+fn] = fn; obj[type+fn] = function() { obj["e"+type+fn]( window.event ); } obj.attachEvent( "on"+type, obj[type+fn] ); } } addEvent(window, "resize", adBox); adBox(); </script> |
1 2 3 | Source File: http://www.gfxpoll.nl/index.php Line: 0 |
Basicly wel. In mijn versie kan je de code makkelijker hergebruiken. Verder zit er een verschil in de scope waarin de handlers worden uitgevoerd.quote:Op donderdag 30 augustus 2007 13:44 schreef Geqxon het volgende:
[..]
Doet dit niet basicly hetzelfde?
Het is niet zo dat de style.left property niet wordt ondersteund, maar de waarde die je er in probeert te zetten is ongeldig. Style.left moet een lengte zijn: een getal en een eenheid (bij px, pt of %). Alleen bij de waarde 0 mag je de eenheid weglaten.quote:Op donderdag 30 augustus 2007 18:05 schreef Chandler het volgende:
Volgens mij wel, maar nu blijkt dit weer niet te werken in FF krijg een melding dat LEFT niet geaccepteerd wordt!
[ code verwijderd ]
en dan de melding in FF
[ code verwijderd ]snap ut nou helemaal niet meer
FF ver. 1.5.0.12
Ik heb mij er eens even in verdiept, ik heb hem door. Dank uquote:Op donderdag 30 augustus 2007 18:09 schreef SuperRembo het volgende:
[..]
Basicly wel. In mijn versie kan je de code makkelijker hergebruiken. Verder zit er een verschil in de scope waarin de handlers worden uitgevoerd.
Maar beide versies zijn verre van bug-vrij.
1 2 3 | alert(arr["foo"]); alert(arr.foo); |
1 2 3 4 | blaat.property1 = "blaat"; blaat["property1"] = "blaat; |
1 2 3 | property1: "blaat" }; |
Wat zoek je dan? Je kunt er wel doorheen lopen met een for:quote:Op donderdag 6 september 2007 13:29 schreef Chandler het volgende:
Ah SuperRembo, jammer dat dat er niet in verwerkt zit :{ want de optie die je aangeeft is niet echt wat ik zoek :( dan maar zonder array werken :P
1 2 3 4 5 | for (var i in myCollection) { alert(myCollection[i]); } |
Er zitten wel arrays in, maar niet met named keys. Maar wat wil je precies doen? Het zou zomaar kunnen dat het toch lukt met objecten of anderszinsquote:Op donderdag 6 september 2007 13:29 schreef Chandler het volgende:
Ah SuperRembo, jammer dat dat er niet in verwerkt zitwant de optie die je aangeeft is niet echt wat ik zoek
dan maar zonder array werken
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | <head> <script language="javascript"> var xmlHttp; // xmlHttp var. var xmlHttpError; // error variable var xmlHttpFailure = false; // false for failure var xmlHttpCache; // buffer for received data function create_http_object() { // This array is a list of all/most possible XMLHTTP types var ActiveXTypes = [ "Microsoft.XMLHTTP", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP" ]; // Loop through the ActiveXTypes array and for (var i = 0; i < ActiveXTypes.length; i++) { // try to use the current XMLHTTP object, // if not it's not possible try the next try { return new ActiveXObject(ActiveXTypes[i]); } catch(e) { // object kan niet gebruikt worden! } } // none of them worked, try the function XMLHttpRequest() try { return new XMLHttpRequest(); } catch(e) { alert("Helemaal geen XML mogelijkheden"); } // It seems that the browser doesn't support AJAX Stuff return false; } function stateChanged() { // is readyState 4? 4 = all data is received if (xmlHttp.readyState == 4) { // return data to xmlHttpCache variable xmlHttpCache = xmlHttp.responseText; } } function ajaxSubmit(url, data, returnOBJ) { // url location of the scripting // data array of submit data // returnOBJ is the object to return the received data to // open XMLHTTP connection xmlHttp = create_http_object(); // connection open? if (xmlHttp != false) { // when state is ready, do save xmlHttp.onreadystatechange = stateChanged(); // open url xmlHttp.open('POST', url, true); // set headers before posting xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlHttp.setRequestHeader("Content-length", data.length); xmlHttp.setRequestHeader("Connection", "close"); // send data to server xmlHttp.send(data); // object is given! (or not?) if (returnOBJ != "") { // add received content to given object (returnOBJ) returnOBJ = xmlHttpCache; } } else { // display ERROR notice notifyNoAjax(); } } function ajaxGet(url, data, returnOBJ) { // url location of scripting // data compilation of string paramters // return OBJ object to return received data to // open XMLHTTP connection xmlHttp = create_http_object(); // connection open? if (xmlHttp != false) { // what to do with received data! xmlHttp.onreadystatechange = stateChanged(); // open url location xmlHttp.open('GET', url + data, true); // send nothing, just go receive data xmlHttp.send(null); // if received data is longer then.... if (xmlHttpCache.length > 0 && returnOBJ != "") { returnOBJ = xmlHttpCache; } } else { // display ERROR notice! notifyNoAjax(); } } function notifyNoAjax() { if (xmlHttpFailure == false) { alert('Sorry, uw brouwser ondersteund geen AJAX / Javascript calls'); } } </script> </head> <body> <div id="receiveddatadiv" style="width: 300px; height: 100px; border: 1px solid green">Content is comming....</div> <a href="#" onClick="ajaxGet('file://c:/1.html', '', document.getElementById('receiveddatadiv').innerHtml);">AJAX GET TEST</a> <form> Name: <input type="text" id="id_name"><br /> Text: <textarea name="text" id="id_text"></textarea><br /> </form> <input type="button" onClick="ajaxSubmit('c:/test.php', 'name=' + escape(encodeURI(document.getElementById('id_name').value)) + '&text=' + escape(encodeURI(document.getElementById('id_text').value)), document.getElementById('receiveddatadiv').innerHtml);" value="AJAX POST TEST"> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 | { var data = []; for (p in params) { data.push(encodeURIComponent(p) + "=" + encodeURIComponent(params[p])); } return data.join("&"); } var params = { code: "foo", name: "Foo" }; var data = encodeParams(params); |
quote:Sorry, uw brouwser ondersteund geen AJAX / Javascript calls
Mooi lapje code! maar wat bedoel je met de laatste quote?quote:Op donderdag 6 september 2007 18:53 schreef SuperRembo het volgende:
[ code verwijderd ]
Dan kan je de variabele data in een url ("test.php?" + data) of als post data in een http request (request.send(data)).
[..]
![]()
Dat je code als het een publieke website is liever ook werkt als JS uit staat denk ik, en dat mensen zonder JS deze alert nooit gaan zienquote:Op vrijdag 7 september 2007 09:32 schreef Chandler het volgende:
[..]
Mooi lapje code! maar wat bedoel je met de laatste quote?
Wat doet die returnObj parameter in je functie? Parameters zijn om iets door te geven aan een functie, niet voor return values... bovendien zie ik de functie nergens wachten tot er een resultaat is. Er wordt vanuit gegaan dat er meteen resultaat is, dat werkt heel misschien als je op localhost zit te testen maar dat gaat gegarandeerd mis als de request iets langer duurt, want alles gaat asynchroon en het script blijft daar dus niet op wachten. Met AJAX wil je netjes event based werken, maw: een callbackfunctie definieren die pas aangeroepen wordt als alle data ook daadwerkelijk binnen is. Als je dat niet doet heb je (zeker bij meerdere ajax calls door elkaar die van elkaar afhankelijk zijn) grote kans op een zeer instabiele applicatie die moeilijk tot onmogelijk te debuggen is. Been there, done that, got the t-shirt....quote:Op vrijdag 7 september 2007 12:16 schreef Chandler het volgende:
Haha, duidelijk jatrue true..
Heb je iig nog comments op mjin funcies? hoor graag opbouwende kritiek!
De spelling "brouwser"quote:Op vrijdag 7 september 2007 09:32 schreef Chandler het volgende:
Mooi lapje code! maar wat bedoel je met de laatste quote?Ik heb de code trouwens aangepast
Als bij elke auto de motor opnieuw uitgevonden zou worden zouden auto's 120 miljoen per stuk kosten en ze zouden voor geen meter rijden.quote:Op vrijdag 7 september 2007 15:00 schreef Chandler het volgende:
Hoi Farenji, ik begrijp je dat je zegt dat je het wiel niet opnieuw moet uitvinden, dat wordt zovaak gezegd maar als we het wiel nooit verder zouden uitvinden waren raceauto's nog steeds zo sloom als slakken
Hmm in je code die je hier postte dus niet. Daar wordt het resultaat meteen na de ajaxcall in returnObj gestopt en dat was niet handig. Zoals je het nu doet is het wel beter.quote:Maar om even inhoudenlijk op je reactie m.b.t. de javascript code in te gaan. die returnOBJ wordt gebruikt om de callbackfunctie aan te geven. Dit omdat ik de standaard submit en get functie wil gebruiken met apparte functies voor het 'benutten' van de output van het script!
* create_http_object probeert voor Firefox eerst al die ActiveX dingen te maken (die natuurlijk niet lukken), pas daarna wordt XMLHttpRequest() aangeroepen. Beetje zonde.quote:Op zaterdag 8 september 2007 08:42 schreef Chandler het volgende:
maar nu nog inhoudelijk commentaar op mijn scripting?
Dus eingelijk die XMLHttpRequest eerst proberen en daarna de rest? (zonder controle brouwser!)quote:Op zaterdag 8 september 2007 18:45 schreef SuperRembo het volgende:
* create_http_object probeert voor Firefox eerst al die ActiveX dingen te maken (die natuurlijk niet lukken), pas daarna wordt XMLHttpRequest() aangeroepen. Beetje zonde.
Klopt, heb ik veranderd in stateFunctionquote:* De parameter returnOBJ returnt niets en is geen object, foute naam dus.
Dus eingeljik zou ik beter de functie notifyNoAjax(); in create_http_object kunnen zetten?quote:* ajaxSubmit en ajaxGet controleren of create_http_object wel gelukt is en geven dan een melding. Die melding geeft de functie create_http_object zelf ook al.
Zou je mij even wat in de richting kunnen duwen van de inefficiente code?quote:* Er zit wat dubbele code in, kan vast wel efficienter
Dat zou al beter zijn. Het kan nog mooier (code van Crisp als ik 't goed heb):quote:Op zaterdag 8 september 2007 19:52 schreef Chandler het volgende:
Dus eingelijk die XMLHttpRequest eerst proberen en daarna de rest? (zonder controle brouwser!)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | { window.XMLHttpRequest = function() { var types = [ 'Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP' ]; for (var i = 0; i < types.length; i++) { try { return new ActiveXObject(types[i]); } catch(ex) {} } throw "XMLHttpRequest not supported."; } } |
quote:Zou je mij even wat in de richting kunnen duwen van de inefficiente code?
1 2 3 4 5 6 7 8 | { xmlHttp.open('GET', url + data + "&cache=" + saveDate.getTime(), true); } else { xmlHttp.open('GET', url + "?cache=" + saveDate.getTime(), true); } |
1 2 3 4 5 6 7 8 9 10 | { url += data + "&"; } else { url += "?"; } url += "cache=" + saveDate.getTime(); xmlHttp.open('GET', url, true); |
1 2 3 4 5 6 7 8 9 10 | var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { eval(xmlhttp.responseText); } } xmlhttp.open("GET", "ajax_check.php?request=barcodecheck&barcode="+value,true); xmlhttp.send(null); } |
daar hebben we het probleem al, ajax_check werd gecachedquote:Op zondag 9 september 2007 10:56 schreef SuperRembo het volgende:
Wat staat er in xmlhttp.responseText?
Voor productie, ja. Voor het aanleren daarentegen valt er heel wat voor te zeggen om een deel van het wiel zelf uit te vinden (en zo complex was AJAX nou ook weer niet).quote:Op vrijdag 7 september 2007 14:44 schreef Farenji het volgende:
Tip: ga niet zelf het wiel opnieuw uitvinden maar gebruik een goede kant en klare AJAX library.
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 44 45 | # fok verwijdert wat backslashes.. header('Cache-Control: no-cache'); header('Pragma: no-cache'); if ( $_GET['barcode'] ) { if ( $_GET['barcode'] == "CO-1337" ) { echo "insRow(1,' <img src="images/toptoright.gif" />Naam','<input type="text" name="textfield2" id="textfield2" value="Smit" />')"; echo "rn"; echo "insRow(2,' <img src="images/toptoright.gif" />Telefoonnummer','<input type="text" name="textfield2" id="textfield2" value="074-23663593" />')"; echo "rn"; echo "barcodeveldColor('found')"; } elseif ( $_GET['barcode'] == "CO-1336" ) { echo "insRow(1,' <img src="images/toptoright.gif" />Naam','<input type="text" name="textfield2" id="textfield2" value="Janssen" />')"; echo "rn"; echo "insRow(2,' <img src="images/toptoright.gif" />Telefoonnummer','<input type="text" name="textfield2" id="textfield2" value="074-26663593" />')"; echo "rn"; echo "barcodeveldColor('found')"; } else { echo "barcodeveldColor('notfound')"; } } else { echo "barcodeveldColor('notfound')"; } ?> |
Dat lijkt me logisch als je nooit rijden verwijderd...quote:Op zondag 9 september 2007 23:26 schreef wobbel het volgende:
1e fout: als ik eerst goede code doe, en dan foute laat ie de rijen van de goede code staan (mag dus niet)
2e fout: als ik meerdere malen een goede code invul blijven de rijen zich opstapelen
maar hoe controleer ik of die rijen al bestaan dan? Ik weet niet waar ik moet beginnen en google geeft me alleen de code om de rijen te verwijderen...quote:Op maandag 10 september 2007 07:31 schreef SuperRembo het volgende:
[..]
Dat lijkt me logisch als je nooit rijden verwijderd...
Bedoel je chrome/classic/skin/classic.jar/browser/Thrubber.gif?quote:Op maandag 10 september 2007 19:52 schreef PiRANiA het volgende:
Ey,
Weet iemand waar dat gifje te vinden is uit firefox dat je te zien krijgt als je op het laden van het tebblad wacht?
Ik heb die nodig voor een ajax-site...
hoe extract je die jar?quote:Op maandag 10 september 2007 20:22 schreef SuperRembo het volgende:
[..]
Bedoel je chrome/classic/skin/classic.jar/browser/Thrubber.gif?
Gewoon met winzip/winrar/...quote:
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 | function Kiekeboe_a () { if ( document.getElementById ( 'Barcode' ).value == 'y' ) { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe'; document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt'; } else { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt'; document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe'; } } function Kiekeboe_b () { if ( document.getElementById ( 'Barcode' ).value == 'n' ) { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe'; document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt'; } else { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt'; document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe'; } } </script> |
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 44 45 46 47 | <h2>Reparatie aanmelden</h2> <form action="#SITE_URL/task_add.php" method="post" name="TaskAdd" id="TaskAdd"> <table width="100%" border="0" cellspacing="0" cellpadding="1"> <tr> <td width="50%" align="left" valign="top">Bevat de PC een barcode?</td> <td width="50%" align="left" valign="top">Ja <input type="radio" name="Barcode" id="radio" value="y" onclick="Kiekeboe_a()" /> Nee <input type="radio" name="Barcode" id="radio2" value="n" onclick="Kiekeboe_b()" /></td> </tr> <tr id="BarcodeVeld" class="BarcodeVerstopt"> <td colspan="2"> <table width="100%" border="0" cellspacing="0" cellpadding="0" id="ReparatieTabel"> <tr> <td width="50%" align="left" valign="top"> <img src="#SITE_URL/include/images/toptoright.gif" />Barcode</td> <td width="50%" align="left" valign="top"><input type="text" name="BarcodeInputVeld" id="BarcodeInputVeld" onBlur="BarcodeCheck(this.value)" style="border: solid #7f9db9 1px;" /> <img src="#SITE_URL/include/images/reload.gif" onclick="BarcodeCheck(document.getElementById ( 'BarcodeInputVeld' ).value)" /></td> </tr> </table> </td> </tr> <tr id="KlantVeld" class="KlantVerstopt"> <td colspan="2"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="50%" align="left" valign="top"> <img src="#SITE_URL/include/images/toptoright.gif" />Naam</td> <td width="50%" align="left" valign="top"><input type="text" name="textfield2" id="textfield2" /></td> </tr> <tr> <td width="50%" align="left" valign="top"> <img src="#SITE_URL/include/images/toptoright.gif" />Telefoonnummer</td> <td width="50%" align="left" valign="top"><input type="text" name="textfield3" id="textfield3" /></td> </tr> </table> </td> </tr> <tr> <td align="left" valign="top" colspan="2"> </td> </tr> <tr> <td align="center" valign="top" colspan="2"><input type="image" name="imageField" src="#SITE_URL/include/images/buttons/task_toevoegen.jpg"></td> </tr> </table> <input type="hidden" name="sid" value="8f99d96f935336c7b8efb70944ff3105" /></form> </div> |
FF gaf me niks of ik ben blindquote:Op vrijdag 14 september 2007 23:38 schreef SuperRembo het volgende:
Je hebt geen element met id="Barcode", wel met name="Barcode". getElementById("Barcode") levert dus niets op. Alleen IE zoekt bij getElementById niet alleen op id maar ook op name.
(Die fout had je makkelijk zelf kunnen vinden als je naar de foutmelding had gekeken die Firefox geeft)
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 | { if ( document.getElementById ( 'Barcode' ).value == 'y' ) { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe'; document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt'; } else { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt'; document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe'; } } function Kiekeboe_b () { if ( document.getElementById ( 'Barcode' ).value == 'n' ) { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe'; document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt'; } else { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt'; document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe'; } } |
dan zou alleen onderstaande toch ook moeten werken? Dat ik bij beide radiobuttons zelfde functie aanroep? (alleen dat doet ie dus niet)quote:Op zaterdag 15 september 2007 21:07 schreef SuperRembo het volgende:
Beide functies doen eigenlijk hetzelfde: kijken naar de status van de radiobuttons en dan een van de twee velden tonen. Dus dat kan makkelijk in 1 functie.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | { if ( document.getElementById ( 'Barcode' ).value == 'y' ) { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe'; document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt'; } else { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt'; document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe'; } } |
Ze doen hetzelfde, ze zijn niet exact hetzelfde (vergelijking met 'y' en 'n'). Doe de HTML erbij en het is, zoals SuperRembo zegt, makkelijk genoeg in 1 functie te plaatsen.quote:Op zondag 16 september 2007 14:22 schreef wobbel het volgende:
[..]
dan zou alleen onderstaande toch ook moeten werken? Dat ik bij beide radiobuttons zelfde functie aanroep? (alleen dat doet ie dus niet)
[ code verwijderd ]
Jups, maar ik heb het al heel veel geprobeerd...maar JS is niet hetzelfde als PHP :')quote:Op zondag 16 september 2007 14:29 schreef Litpho het volgende:
[..]
Ze doen hetzelfde, ze zijn niet exact hetzelfde (vergelijking met 'y' en 'n'). Doe de HTML erbij en het is, zoals SuperRembo zegt, makkelijk genoeg in 1 functie te plaatsen.
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 44 45 46 47 | <h2>Reparatie aanmelden</h2> <form action="#SITE_URL/task_add.php" method="post" name="TaskAdd" id="TaskAdd"> <table width="100%" border="0" cellspacing="0" cellpadding="1"> <tr> <td width="50%" align="left" valign="top">Bevat de PC een barcode?</td> <td width="50%" align="left" valign="top">Ja <input type="radio" name="Barcode" id="radio" value="y" onclick="Kiekeboe_a()" /> Nee <input type="radio" name="Barcode" id="radio2" value="n" onclick="Kiekeboe_b()" /></td> </tr> <tr id="BarcodeVeld" class="BarcodeVerstopt"> <td colspan="2"> <table width="100%" border="0" cellspacing="0" cellpadding="0" id="ReparatieTabel"> <tr> <td width="50%" align="left" valign="top"> <img src="#SITE_URL/include/images/toptoright.gif" />Barcode</td> <td width="50%" align="left" valign="top"><input type="text" name="BarcodeInputVeld" id="BarcodeInputVeld" onBlur="BarcodeCheck(this.value)" style="border: solid #7f9db9 1px;" /> <img src="#SITE_URL/include/images/reload.gif" onclick="BarcodeCheck(document.getElementById ( 'BarcodeInputVeld' ).value)" /></td> </tr> </table> </td> </tr> <tr id="KlantVeld" class="KlantVerstopt"> <td colspan="2"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="50%" align="left" valign="top"> <img src="#SITE_URL/include/images/toptoright.gif" />Naam</td> <td width="50%" align="left" valign="top"><input type="text" name="textfield2" id="textfield2" /></td> </tr> <tr> <td width="50%" align="left" valign="top"> <img src="#SITE_URL/include/images/toptoright.gif" />Telefoonnummer</td> <td width="50%" align="left" valign="top"><input type="text" name="textfield3" id="textfield3" /></td> </tr> </table> </td> </tr> <tr> <td align="left" valign="top" colspan="2"> </td> </tr> <tr> <td align="center" valign="top" colspan="2"><input type="image" name="imageField" src="#SITE_URL/include/images/buttons/task_toevoegen.jpg"></td> </tr> </table> <input type="hidden" name="sid" value="8f99d96f935336c7b8efb70944ff3105" /></form> </div> |
Je moet kijken naar welke radiobutton geselecteerd is, dat kan met de checked property. Je moet niet kijken naar de value van een input-radio element, want die verandert niet.quote:Op zondag 16 september 2007 14:22 schreef wobbel het volgende:
[..]
dan zou alleen onderstaande toch ook moeten werken? Dat ik bij beide radiobuttons zelfde functie aanroep? (alleen dat doet ie dus niet)
[ code verwijderd ]
Tenzij je kiekeboe aanroept met this als parameter, dan krijg je wel de waarde mee van de specifieke radiobutton (ipv de geselecteerde waarde van de radiobuttongroup) en bij radiobuttons mag je er in een onclick vanuitgaan dat hij checked is.quote:Op zondag 16 september 2007 14:42 schreef SuperRembo het volgende:
[..]
Je moet kijken naar welke radiobutton geselecteerd is, dat kan met de checked property. Je moet niet kijken naar de value van een input-radio element, want die verandert niet.
1 2 3 4 5 6 7 8 9 10 11 12 | if ( obj.value == 'y' ) { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe'; document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt'; } else { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt'; document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe'; } } |
1 2 3 4 | Ja <input type="radio" name="Barcode" id="radio" value="y" onclick="Kiekeboe(this)" /> Nee <input type="radio" name="Barcode" id="radio2" value="n" onclick="Kiekeboe(this)" /> </td> |
Kijk eens aan, daar heb ik wat aan. Code + uitlegquote:Op zondag 16 september 2007 14:50 schreef Litpho het volgende:
[..]
Tenzij je kiekeboe aanroept met this als parameter, dan krijg je wel de waarde mee van de specifieke radiobutton (ipv de geselecteerde waarde van de radiobuttongroup) en bij radiobuttons mag je er in een onclick vanuitgaan dat hij checked is.
[ code verwijderd ]
[ code verwijderd ]
als ik dan een row toevoeg met JS, hoe geef ik dan een class mee? en dan nog, hoe verwijder ik dan een rij met een bepaalde class?quote:Op maandag 10 september 2007 11:58 schreef SuperRembo het volgende:
Dat kan op allerlei manieren. Je kan de rows collection van de table gerbruiken, je kunt zelf bijhouden welke rows je hebt toegevoegd. Je kunt de rijen die je zelf toevoegt een class geven waar je ze aan kan herkennen. Als je altijd dezelfde velden laat zien dan kan je de velden leeg maken of verbergen, via ajax stuur je alleen de waarden van de velden, niet de hele HTML van de velden zelf.
1 2 3 4 5 6 7 8 9 10 | { var x = document.getElementById('ReparatieTabel').insertRow(row) var y = x.insertCell(0) var z = x.insertCell(1) y.innerHTML = value1 z.innerHTML = value2 } |
Je maakt me niet wijs dat dit niet binnen 5 seconden te vinden is op Google:quote:Op zondag 16 september 2007 18:17 schreef wobbel het volgende:
[..]
als ik dan een row toevoeg met JS, hoe geef ik dan een class mee?
1 |
waar vind je dat allemaal? Ik zou namelijk ook graag willen weten hoe je de id="" instelt van een row die je toevoegtquote:Op maandag 17 september 2007 09:35 schreef CraZaay het volgende:
[..]
Je maakt me niet wijs dat dit niet binnen 5 seconden te vinden is op Google:
[ code verwijderd ]
eval().quote:Op vrijdag 21 september 2007 12:22 schreef PiRANiA het volgende:
Hoe kan ik wat ik van mijn AJAX terugkrijg als script laten uitvoeren?
eval idd, of gewoon lekker een framework gebruiken. Ik blijf me afvragen waarom iedereen steeds het wiel opnieuw wil uitvinden.quote:Op vrijdag 21 september 2007 12:22 schreef PiRANiA het volgende:
Hoe kan ik wat ik van mijn AJAX terugkrijg als script laten uitvoeren?
idd met eval ();quote:Op vrijdag 21 september 2007 12:22 schreef PiRANiA het volgende:
Hoe kan ik wat ik van mijn AJAX terugkrijg als script laten uitvoeren?
Wat bedoel je?quote:Op vrijdag 21 september 2007 20:23 schreef wobbel het volgende:
let wel op dat je tekst ook moet parsen met document.write ();
stel je ajax request roept check.php aan.quote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <input type="text" id="field1_txtSearch" name="field1_txtSearch" alt="Search Criteria" onkeyup="searchSuggest('field1');" autocomplete="off" /> <input type="submit" id="cmdSearch" name="cmdSearch" value="Search" alt="Run Search" /><br /> <div id="field1_search_suggest"></div> <input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /></form> <form id="frmSearch" action=""> <input type="text" id="field2_txtSearch" name="field2_txtSearch" alt="Search Criteria" onkeyup="searchSuggest('field2');" autocomplete="off" /> <input type="submit" id="cmdSearch" name="cmdSearch" value="Search" alt="Run Search" /><br /> <div id="field2_search_suggest"></div> <input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /></form> <form id="frmSearch" action=""> <input type="text" id="field3_txtSearch" name="field3_txtSearch" alt="Search Criteria" onkeyup="searchSuggest('field3');" autocomplete="off" /> <input type="submit" id="cmdSearch" name="cmdSearch" value="Search" alt="Run Search" /><br /> <div id="field3_search_suggest"></div> <input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /></form> <form id="frmSearch" action=""> <input type="text" id="field4_txtSearch" name="field4_txtSearch" alt="Search Criteria" onkeyup="searchSuggest('field4');" autocomplete="off" /> <input type="submit" id="cmdSearch" name="cmdSearch" value="Search" alt="Run Search" /><br /> <div id="field4_search_suggest"></div> >/form> |
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 44 45 46 47 48 49 50 51 52 53 54 | //Called from keyup on the search textbox. //Starts the AJAX request. function searchSuggest(field) { if (searchReq.readyState == 4 || searchReq.readyState == 0) { var str = escape(document.getElementById(field + '_txtSearch').value); searchReq.open("GET", 'searchSuggest.php?search=' + str, true); searchReq.onreadystatechange = handleSearchSuggest(field); searchReq.send(null); } } //Called when the AJAX response is returned. function handleSearchSuggest(field) { if (searchReq.readyState == 4) { var ss = document.getElementById(field + '_search_suggest') ss.innerHTML = ''; var str = searchReq.responseText.split("n"); for (i = 0; i < str.length - 1; i++) { //Build our element string. This is cleaner using the DOM, but //IE doesn't support dynamically added attributes. var suggest = '<div onmouseover="javascript:suggestOver(this, '' + field + '');" '; suggest += 'onmouseout="javascript:suggestOut(this, '' + field + '');" '; suggest += 'onclick="javascript:setSearch(this.innerHTML, '' + field + '');" '; suggest += 'class="suggest_link">' + str[i] + '</div>'; ss.innerHTML += suggest; } } } //Mouse over function function suggestOver(div_value, field) { div_value.className = 'suggest_link_over'; } //Mouse out function function suggestOut(div_value, field) { div_value.className = 'suggest_link'; } //Click function function setSearch(value, field) { document.getElementById(field + '_txtSearch').value = value; document.getElementById(field + '_search_suggest').innerHTML = ''; } |
1 |
1 |
Het wachten is nu op Crazaay die je komt vertellen dat je gewoon een framework had moeten gebruikenquote:
1 2 3 4 | Titel: <input type="text" name="woei" onClick="functie();"><br /> <div id="zoekveld"></div> <input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /><input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /><input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /><input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /></form> |
1 2 3 4 5 6 7 | position: relative; width: 250px; border: 1px solid black; display: none; z-index: 999; } |
1 2 3 4 5 | Gebruiker: <input type="text" id="field4_txtSearch" name="field4_txtSearch" alt="Search Criteria" onkeyup="searchSuggest('username', 'field4');" autocomplete="off" /> <input type="submit" id="cmdSearch" name="cmdSearch" value="Search" alt="Run Search" /><br /> <div id="field4_search_suggest" class="suggest_box"></div> <input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /></form> |
1 2 3 4 5 6 | { var obj = document.getElementById(field) } |
document.getElementById('henk').valuequote:Op maandag 8 oktober 2007 11:42 schreef wobbel het volgende:
Ik heb ergens op de pagina een <input type="text" name="henk" id="henk" value="onbekend"> staan.
Hoe kan ik nou ergens verderop de de pagina dmv een functie die waarde ("onbekend") opvragen?
[ code verwijderd ]
verder dan dit kom ik niet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | function showWorkDetailsPerson(id, pauzes){ // alle velden tonen for(i=1; i<=12; i++){ veld = document.getElementById('rij_'+i+'_nummer_'+id); veld.style.display = 'table-cell'; } // alle p velden tonen for (i=1; i<=pauzes; i++){ if (i == 1){ veld = document.getElementById('rij_'+id+'_'+i); veld.style.display = 'table-cell'; veld = document.getElementById('rij1_'+id+'_'+i); veld.style.display = 'table-cell'; }else{ veld = document.getElementById('rij_'+id+'_'+i); veld.style.display = 'none'; veld = document.getElementById('rij1_'+id+'_'+i); veld.style.display = 'none'; } } } |
wat doe ik verkeerd?quote:Error: Could not get the display property. Invalid argument.
Code: 0
document.getElementById('rij_'+i+'_nummer_'+id).style.display = 'table-cell';quote:Op woensdag 10 oktober 2007 14:17 schreef markiemark het volgende:
ff een probleempje...
ik ben bezig om een systeempje te maken waarbij details ingevoerd kunnen worden door middel van een uitklapscherm. heb ik op deze manier gemaakt...
[ code verwijderd ]
in firefox werkt het goed, in ie krijg ik een fout melding... heel vaag..
de fout zit in lijn 6..
[..]
wat doe ik verkeerd?
Ik vind jou lievv..quote:Op woensdag 10 oktober 2007 17:25 schreef SuperRembo het volgende:
Het zou best eens kunnen dat IE display: table-cell niet kent.
In plaats van style.display = 'table-cell' kan je waarschijnlijk beter style.display = '' gebruiken. Dat zorgt er voor dat de default waarde wordt gebruikt.
Het enige wat je hoeft te doen is door alle options van de select lopen en voor elke option de selected property op true zetten.quote:Op donderdag 11 oktober 2007 07:26 schreef Vlek het volgende:
Maar nou is het de bedoeling dat als er iets in de rechter multiselect staat, hij bij onsubmit gelijk die hele multiselect selecteerd, zonder dat je dat zelf nog eens hoeft te doen. k heb al een aantal scripts geprobeerd, maar tot nog toe geen succes. Het script mag evt ook werken met een checkbox, waarbij je aangeeft of alles geselecteerd word.
ik heb ooit dit geschreven:quote:Op donderdag 11 oktober 2007 07:26 schreef Vlek het volgende:
Ik heb twee multiselects naast elkaar, waarmee waarden van de ene naar de andere multiselectbox gezet kunnen worden. Dit werkt allemaal prima, als dan de rechterkant geselecteerd is, word ook alles keurig uitgelezen.
Maar nou is het de bedoeling dat als er iets in de rechter multiselect staat, hij bij onsubmit gelijk die hele multiselect selecteerd, zonder dat je dat zelf nog eens hoeft te doen. k heb al een aantal scripts geprobeerd, maar tot nog toe geen succes. Het script mag evt ook werken met een checkbox, waarbij je aangeeft of alles geselecteerd word.
1 2 3 4 5 6 7 | { for(i=0; i<document.form1.selectie.options.length; i++) { document.form1.selectie.options[i].selected = true; } } |
hehe idd.. zou wel automatisch gegenereerd zijn adhv session id of zoquote:
truequote:Op donderdag 18 oktober 2007 23:20 schreef markiemark het volgende:
[..]
hehe idd.. zou wel automatisch gegenereerd zijn adhv session id of zo
ga ik proberen, tnxquote:Op donderdag 18 oktober 2007 22:02 schreef SuperRembo het volgende:
De disabled property is eigenlijk een boolean, je had 'm dus eigenlijk op true moeten zetten. Om 'm weer te enabelen zet je disbled op false.
1 2 3 4 5 | { x = document.getElementById('react'); (x.style.display == 'block') ? x.style.display = 'none' : x.style.display = 'block'; } |
1 2 3 4 5 | { x = document.getElementById('react').style.display; (x == 'block') ? x = 'none' : x = 'block'; } |
Dat element "meenemen" wil je juist niet. Je wilt de referentie naar het element gebruiken.quote:Op woensdag 7 november 2007 12:00 schreef Chandler het volgende:
Ah duidelijk, ik dacht dat x dan het gehele element mee zou nemen maar dat is dus niet zoweer wat geleerd
1 2 3 4 5 | { x = document.getElementById('react').style; (x.display == 'block') ? x.display = 'none' : x.display = 'block'; } |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | - <nodes> - <node> <name>Documents and Settings</name> <id>C:/Documents and Settings</id> <items>1</items> </node> - <node> <name>Games</name> <id>C:/Games</id> <items>1</items> </node> - <node> <name>MyServer</name> <id>C:/MyServer</id> <items>1</items> etcetcetc |
1 2 3 4 5 6 7 8 9 | /* check if HTTP Response Code is 200 (resource found) */ if(request.status == 200) { /* get data as xml and select only nodes */ x = request.responseXML.getElementsByTagName('nodes')[0].getElementsByTagName('node'); // <-- error y = x.length; /* no nodes in response - go out from function */ ?> |
1 2 3 | Source File: etc/js/tree.js Line: 118 |
1 |
alert(request.responseXML) geeft het XML voorbeeld + natuurlijk wat meer dataquote:Op vrijdag 9 november 2007 13:02 schreef SuperRembo het volgende:
De foutmelding geeft aan dat er geen "nodes" element bestaat.
Krijg je wel echt xml binnen?
Wat geeft request.responseXML.childNodes.length of request.responseXML.childNodes[0]?
getElementsByTagName geeft alle nodes met de gegeven naam, dus ook dieper gelegen nodes.
x = request.responseXML.getElementsByTagName('nodes')[0].getElementsByTagName('node');
is in dit geval dus hetzelfde als
x = request.responseXML.getElementsByTagName('node');
1 2 3 4 5 6 7 8 9 | { with(parent.getElementsByTagName('p')[0]) // <-- error { removeChild(lastChild); appendChild(document.createTextNode('No contents found...')); } return false; } |
Dat is vreemd. Stuur je wel een text/xml header? Wat geeft request.getResponseHeader("Content-Type")?quote:Op vrijdag 9 november 2007 14:47 schreef Chandler het volgende:
[..]
alert(request.responseXML) geeft het XML voorbeeld + natuurlijk wat meer data
request.responseXML.childNodes.length geeft 0
Zo verstuur ik hetquote:Op vrijdag 9 november 2007 15:49 schreef SuperRembo het volgende:
[..]
Dat is vreemd. Stuur je wel een text/xml header? Wat geeft request.getResponseHeader("Content-Type")?
1 2 3 4 5 6 | header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . " GMT" ); header( "Cache-Control: no-cache, must-revalidate" ); header( "Pragma: no-cache" ); echo('<'.'?xml version="1.0" encoding="iso-8859-1" ?'.'>'."\r\n"); |
1 |
1 2 3 | Teken: 13 Fout: Type komt niet overeen |
1 |
1 2 3 | Source File: etc/js/tree.js Line: 121 |
1 2 3 4 5 6 | e['ul'].appendChild(e['li']); } parent.removeChild(parent.getElementsByTagName('p')[0]); <-- 121 parent.appendChild(e['ul']); <-- 122 } |
AJAX?quote:Op vrijdag 9 november 2007 16:42 schreef PiRANiA het volgende:
Wie met ienternet explorer snapt wat het hier fout gaat:
http://roostertv.kexx.net/ (onderin)
in FF werkt het wel...
(gaat over AJAX...)
Dat is de default header die php stuurt.quote:Op vrijdag 9 november 2007 17:36 schreef Chandler het volgende:
[..]
Zo verstuur ik het
[ code verwijderd ]
en die request.getResponseHeader("Content-Type")? geeft idd text/html
Hoe is dat mogelijk?
Bestaat er wel een element <p>? Is de variable die je propeert te appenden wel een element?quote:maar dan krijg ik weer een andere error
Ben ik niet met je eens. De toevoeging "javascript:" in onload en onclick is wel overbodig.quote:Op vrijdag 9 november 2007 17:46 schreef Chandler het volgende:
Je kunt trouwens beter die onload (imho) gewoon onderaan het script zetten.
Nee, want dat wordt 'ie al uitgevoerd voor de HTML geladen is en de DOM nog niet compleet is. Wél zou het netter zijn om een onload event listener toe te voegen via het script imo.quote:Op vrijdag 9 november 2007 17:46 schreef Chandler het volgende:
Je kunt trouwens beter die onload (imho) gewoon onderaan het script zetten.
iets van image onmove="corsor:default" .quote:Op zondag 11 november 2007 00:17 schreef Skorpija het volgende:
Volgens mij niet echt een dummy vraag...
Wanneer ik op een plaatje klik, en vervolgens (met de linkermuisknop nog ingedrukt) de cursor begin te slepen, veranderd de cursor in een 'stop' teken. Is hier iets tegen te doen?
Ik wil dat de cursor gewoon als pointer blijft.
quote:Op zondag 11 november 2007 00:17 schreef Skorpija het volgende:
Wanneer ik op een plaatje klik, en vervolgens (met de linkermuisknop nog ingedrukt) de cursor begin te slepen, veranderd de cursor in een 'stop' teken. Is hier iets tegen te doen?
Ik wil via javascript over een plaatje 'tekenen'. Maar als ik dus begin met tekenen, veranderd de cursor in een 'not-allowed' cursor.quote:Op zondag 11 november 2007 12:23 schreef SuperRembo het volgende:
[..]
Bij dit soort vragen vraag ik me altijd af waarom je zoiets zou willen.
Leg die eens even uit als je wiltquote:Op zondag 11 november 2007 13:30 schreef Skorpija het volgende:
[..]
Ik wil via javascript over een plaatje 'tekenen'. Maar als ik dus begin met tekenen, veranderd de cursor in een 'not-allowed' cursor.
1 |
1 |
jaquote:Op woensdag 14 november 2007 18:10 schreef super-muffin het volgende:
Is Time geen gereserveerde naam in Javascript?
en returnt die functie wel wat?
1 2 | document.write('henk'+time()+'piet'); |
Stel het plaatje in als background-image van het vlak waarin je wilt tekenen. Leuk idee trouwens.quote:Op zondag 11 november 2007 13:30 schreef Skorpija het volgende:
[..]
Ik wil via javascript over een plaatje 'tekenen'. Maar als ik dus begin met tekenen, veranderd de cursor in een 'not-allowed' cursor.
heb dit gedaan:quote:Op woensdag 14 november 2007 18:36 schreef SuperRembo het volgende:
[ code verwijderd ]
Dit geeft toch echt 'henk7piet'.
1 2 3 | time() document.write('piet') |
Nou ja "werkt".quote:Op vrijdag 16 november 2007 07:46 schreef Flaccid het volgende:
[..]
heb dit gedaan:
[ code verwijderd ]
dit werkt wel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function addForm() { code++; nieuweCode = '<div id="code' + code '">Inhoud</div>'; document.getElementById('code').innerHTML = document.getElementById('code').innerHTML + nieuweCode } function removeForm(id) { document.getElementById('code').removeChild('code' + id); } code = 1; |
1 2 3 | <div id="code1">Inhoud</div> </div> |
Welkom in de wondere wereld van encodingproblemen.quote:Op dinsdag 1 januari 2008 17:26 schreef BabeWatcher het volgende:
Heeft iemand misschien een eenvoudig alternatief voor innerHTML?
Via innerHTML lukt het niet om karakters zoals ö,ü of é te plaatsen, Firefox geeft een ? , IE laat ook karakters achter het teken weg.
1 2 3 4 5 6 7 8 9 | if (typeof(el.attr('foo')) == 'undefinded') { el.attr('foo', 'bar'); } else { el.removeAttr('foo'); } |
Precies. Die kun je dan toch prima gebruiken om te doen wat in de post hierboven staat?quote:Op maandag 14 januari 2008 17:42 schreef super-muffin het volgende:
HTML attribuut.
Die toggle functie had ik wel gevonden, maar doet niet precies wat ik wil. Het attribuut moet aangemaakt worden als het niet bestaat, en als het wel bestaat verwijderd worden, met die toggle functie gaat dat niet lukken, die registreerd gewoon elke even en oneven klik.
Even de documentatie doorlezen: http://docs.jquery.com/Attributes. Wat voor functies bestaan er? Zit er iets tussen wat ik kan gebruiken?quote:Op maandag 14 januari 2008 19:30 schreef super-muffin het volgende:
Dat wat hier boven staat had ik nodig, thanks. Stom dat ik er zelf niet ben opgekomen
quote:If the element does not have an attribute with such a name, undefined is returned.
submit form naar een popup:quote:Op maandag 21 januari 2008 19:56 schreef wobbel het volgende:
Ik hoop dat jullie een beetje JS kunnen
Ik heb deze pagina:
http://www.senscomputers.nl/v2/TEST.php
als je vervolgens de popup opent, en je klikt op het nummer...dan moet ie dat invullen in het inputvenster van het vorige venster
Het KAN welmaar hoe?
1 |
1 |
Bedanktquote:Op maandag 21 januari 2008 20:02 schreef ralfie het volgende:
opener.test.mediaId.value = "watermeloen"
1 |
ik ben een vies mannetjequote:Op vrijdag 25 januari 2008 14:04 schreef Geqxon het volgende:
Als je het snel en vies wilt doen:
[ code verwijderd ]
Dat kan als je zeker weet dat ie leeg is. Anders moet je eerst de bestaande child node(s) verwijderen.quote:Op vrijdag 25 januari 2008 14:40 schreef Geqxon het volgende:
Het is nog wel het mooist om er een textnode in te zetten.
1 2 3 | node.removeChild(node.firstChild); } |
ik kan me er wel iets bij voorstellen. Firefox is gebouwd op een soort van javascript engine en daarom ook helemaal rond dat soort objects en children en whatnot. IE heeft een eigen platform wat javascript als het ware emuleert. Wat je dan krijgt is dat dit soort basale functies in firefox heel snel gaan (want basaal) en in IE trager (want wordt geemuleerd) terwijl iets als object.innerHTML in IE direct wordt verwerkt terwijl firefox met objects.childs.counts.removes ed. moet gaan emuleren omdat netjes te verwerken.quote:Op vrijdag 25 januari 2008 18:43 schreef Geqxon het volgende:
Jij werkt zeker met een for-lusje dat loopt van 0 tot het aantal kinderen van de node? Vreemd inderdaad...
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |