abonnement Unibet Coolblue Bitvavo
  donderdag 28 juni 2007 @ 15:06:13 #76
12880 CraZaay
prettig gestoord
pi_50939242
Wat is het doel Chandler? Ben je niet goed af met <optgroup> toevallig?
pi_50939305
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?
Goed punt.
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_50939813
<optgroup>?

Nog nooit van gehoord, ga gelijk googlen!

-edit-

Gevonden en nu al ingebouwd cq gebruikt!.

Wat een handig element zeg!. Tnx CraAzAaaaaaaaaaaaaaaaay!

[ Bericht 50% gewijzigd door Chandler op 28-06-2007 15:30:05 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50940994
Maakt dit qua preformance wat uit of niet?

1
2
3
4
5
6
7
8
var count_items = menu_items.length;
for(var i = 0; i < count_items; i++) {
   // doe iets tofs.
}

for(var i = 0; i < menu_items.length; i++) {
   // doe iets tofs.
}
pi_50941029
klopt het trouwens dat hier posts zijn verdwenen?
pi_50941408
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!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50941956
In PHP is dat waar inderdaad (lees ik net op php.net) Dus lijkt het me voor Javascript ook, hoewel ik het nergens kan vinden.

In dit geval maakt het niet zo heel erg veel uit, het gaat om array die bestaat uit wel 4 elementen
pi_50942467
quote:
Op donderdag 28 juni 2007 16:01 schreef super-muffin het volgende:
Maakt dit qua preformance wat uit of niet?
[ code verwijderd ]
Ja dat maakt zeker uit.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// normaal
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]);
}


De laatste versie is het snelst, maar die is wat minder duidelijk, dus die zou ik alleen gebruiken als de snelheid heel belangrijk is.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_50944315
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.
Die laatste is toch simpel te gebruiken (ook andersom)

1
2
3
4
5
6
7
var i = a.length;
var j = 0;
while (i--)
{
    j++;
   Foo(a[j]);
}


:)

2 regels meer maar qua preformance even snel volgens mij...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 28 juni 2007 @ 19:20:56 #85
12880 CraZaay
prettig gestoord
pi_50947204
quote:
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.
Goed die laatste! Ga ik meteen inbouwen in m'n project waarbij 500 objecten in een array gestopt moeten worden in een loop
pi_50950087
Wat voor objecten?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 28 juni 2007 @ 21:00:39 #87
12880 CraZaay
prettig gestoord
pi_50950410
Google Maps markers, infowindow's en nog wat spul.
pi_50980534
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!
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?


Zelf had ik het probleem bij:

1
2
3
4
5
6
a = b.length;

i = 0
while (i < a)
b.removechild();
}


Dat dan dus enkel de helft van de childs weggegooid werd (5000 childs, dan is a op een gegeven moment 2500, i ook, en is a niet kleiner dan i meer.
  vrijdag 29 juni 2007 @ 20:28:18 #89
693 ChOas
** Warning: Choking hazard **
pi_50982203
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?
a is op dat moment een statische variabele...

Je wijst maar 1 keer de waarde van 'document.getElementById('hi').length' aan 'a' toe ... die waarde krijgt a, en die verandert niet.

Dus als je telkens de nieuwe lengte wil zal je deze telkens opnieuw moeten opvragen.

Trouwens, .length is ongetwijfeld een item wat goedkoop is om op te vragen, dus zoveel maakt dat niet uit...

voor hetzelfde geld schrijf je

1
2
3
function va() {
 return document.getElementById('hi').length;
};


En gebruik je verder va() i.p.v. 'a'... (met als nadeel dat je de overhead van een functieaanroep hebt, maar maakt je code misschien in sommige gevallen wat netter)
"I contend that we are both atheists. I just believe in one fewer god than you do.
When you understand why you dismiss all the other possible gods, you will understand why I dismiss yours."

[Stephen Roberts]
pi_50983398
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
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_50985079
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
document.getElementById("div").elements.length? Of bedoel je dat niet?
pi_50985434
Alleen een form element heeft een elements property, een div niet. Tenzij je die er zelf op zet natuurlijk.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_51176658
Ik wil dmv javascript een aantal punten op een plaatje kunnen aangeven en later deze of via een form of via xml opslaan in een mysql database.
De punten moeten ook nog verplaatst en verwijderd kunnen worden.

Ik kan me herinneren dat ik in een van de javascript voor dummies range een script daarvoor gezien heb, maar kan deze niet meer vinden.

Wie weet waar ik die kan vinden ?
  zaterdag 14 juli 2007 @ 16:27:46 #94
136730 PiRANiA
All thinking men are atheists.
pi_51463448
Ik heb een aantal <inputs> die ik gebruik als array.
Nou wil ik een knop om inputs er bij te doen.

Ik gebruik nu deze:

1
2
3
4
5
6
7
8
<script type="text/javascript">
<!--
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>


echter worden de ingevulde vakjes verwijderd als ik dit gebruik.
Is er een andere manier?
  zaterdag 14 juli 2007 @ 16:45:32 #95
136730 PiRANiA
All thinking men are atheists.
pi_51463968
oftewel: hoe voeg ik extra content toe aan een pagina zonder dat de input values verwijnen?

www.wrts.nl gebruikt het ook:
http://www.wrts.nl/lijst/create
pi_51464911
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 :r).

Voorbeeldje:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script type="text/javascript">

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>
  zaterdag 14 juli 2007 @ 17:25:50 #97
136730 PiRANiA
All thinking men are atheists.
pi_51465111
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 ]
maar dan kunnen er niet meerdere rijen toegevoegd worden.
  zaterdag 14 juli 2007 @ 17:27:57 #98
136730 PiRANiA
All thinking men are atheists.
pi_51465184
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function add()
{
   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);


deze gebruik ik nu.
Alles lukt, alleen komt er niet de inputbox die ik wil in de nieuwe TD's, maar gewoon tekst:
quote:
CC <input type="text" name="var1[]" AUTOCOMPLETE="off"> <input type="text" name="var1" AUTOCOMPLETE="off">
  zaterdag 14 juli 2007 @ 17:30:09 #99
136730 PiRANiA
All thinking men are atheists.
pi_51465241
1
2
  var a = '<input type="text" name="var1[]" AUTOCOMPLETE="off">'
    td1.appendChild(document.createTextNode(a))


Hoe maak ik dus in plaats van createTextNode: createHTMLNode oid...

bestaat dat? of moet het anders?
pi_51465264
Of je gebruikt DOM functies om nieuwe html elementen toe te voegen.

Als je een willekeurig aantal regel toe wil kunnen voegen dan kom je er niet met een verborgen divje.

Het zal ook al schelen als je geen fouten maakt in de html die je toe voegt. Er ontbreekt een sluittag voor de tr, en autocomplete op "off" zetten (niet "of").
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')