"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Anyone who gets in between me and my morning coffee should be insecure.
Intentionally left blank
Ik vind 1 query-selector-functie ook wel genoeg... Beetje onzin om 2 functies te maken ($ en $$), waarvan $$ ook alles kan wat $ kan. $('blaat') is precies hetzelfde als $$('#blaat'), lekker zinloos.crisp schreef op maandag 17 november 2008 @ 09:50:
Nee, $ kan in jQuery voor van alles gebruikt worden; een soort Frankenstein zeg maar
Magoed.. backwards-compatibility verhaal natuurlijk, nadat ze de query-selectors van jQuery gekopieerd hadden.
edit: Het voorbeeld van TS zou overigens gewoon moeten werken, al kun je het wel verkorten (waarom eerst een each en dan een change, je kunt ook direct de change-hangen aan het resultaat van je selector-query). Ik zal het eens proberen te reproduceren.
edit2: Bij mij doet ie het hier gewoon op beiden hoor?
Er zit echter wel een grote fout in, namelijk regel 4:
1
| var selected = $("select option:selected").val(); |
Dat is een globale query-selector, waarmee je de waarde van de eerste select pakt. Als je dus de eerste op ignore laat staan dan zal de tweede (schijnbaar) niks doen...
Samengevat (en iets verkort), wordt je code dan:
1
2
3
4
5
6
7
8
| $(function() { $('select[goto]').change(function () { var selected = $("option:selected", this).val(); if (selected != 'ignore') { document.location = $(this).attr("goto") + '/' + selected; } }); }); |
[ Voor 48% gewijzigd door Bosmonster op 17-11-2008 10:36 ]
Verwijderd
1
| $('select[goto]').change(function() { |
En waarom kies je trouwens voor een goto attribuut en zet je de gehele url niet in de value van de option?
Hmm Bosmonster was me voor
[ Voor 7% gewijzigd door Verwijderd op 17-11-2008 10:35 ]
Ik weet niet of dat wel zo zinloos is; stel ik heb dit:Bosmonster schreef op maandag 17 november 2008 @ 10:28:
[...]
Ik vind 1 query-selector-functie ook wel genoeg... Beetje onzin om 2 functies te maken ($ en $$), waarvan $$ ook alles kan wat $ kan. $('blaat') is precies hetzelfde als $$('#blaat'), lekker zinloos.
1
2
3
| <body> <div id="body"></div> </body> |
Wat geeft $('body') nu terug in jQuery?
Intentionally left blank
De body, zoals het hoort bij een query-selector. Het is gewoon CSS-style he. Wil je de div, dan hoor je $('#body') te doen of $('div#body'), je vraagt per slot van rekening een ID op.crisp schreef op maandag 17 november 2008 @ 10:44:
[...]
Ik weet niet of dat wel zo zinloos is; stel ik heb dit:
HTML:
1 2 3 <body> <div id="body"></div> </body>
Wat geeft $('body') nu terug in jQuery?
In CSS doe je toch ook:
1
2
3
4
5
| body { } div#body { } |
[ Voor 21% gewijzigd door Bosmonster op 17-11-2008 11:14 ]
Verwijderd schreef op maandag 17 november 2008 @ 10:34:
[...]
En waarom kies je trouwens voor een goto attribuut en zet je de gehele url niet in de value van de option?

1
2
3
4
5
6
7
8
| $(document).ready(function() { $('select.goto').change(function () { var selected = $("option:selected", this).val(); if (selected != 'ignore') { document.location = selected; } }); }); |
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Typisch antwoord van een jQuery gebruikerBosmonster schreef op maandag 17 november 2008 @ 11:13:
[...]
De body, zoals het hoort bij een query-selector. Het is gewoon CSS-style he. Wil je de div, dan hoor je $('#body') te doen of $('div#body'), je vraagt per slot van rekening een ID op.
Ik geef het voorbeeld omdat in andere libraries $() in eerste instantie een ID-selector is. jQuery gooit die conventie overboord en doet iets compleet anders waar andere libraries voor een andere method-naam kiezen. Resultaat: verwarring en niet interoperabel met andere libraries (iets waar we als webdevvers wel al jaren op hameren richting browservendors).
jQuery maakt het zelfs nog bonter door op basis van het type, of zelfs de inhoud van het argument aan $() andere behaviour te vertonen: $(function) en $('<span/>'). Persoonlijk vind ik dat puur bad practice...
[ Voor 8% gewijzigd door crisp op 17-11-2008 12:35 ]
Intentionally left blank
Dan ben je gewoon niet goed op de hoogte van de geschiedenis. jQuery is simpelweg begonnen als query-selector-engine (vandaag ook de naam). De andere libraries hebben het gekopieerd en aan $$ gehangen omdat bij hen $ al een wrapper was voor getElementById.crisp schreef op maandag 17 november 2008 @ 12:32:
[...]
Typisch antwoord van een jQuery gebruiker
Ik geef het voorbeeld omdat in andere libraries $() in eerste instantie een ID-selector is. jQuery gooit die conventie overboord en doet iets compleet anders waar andere libraries voor een andere method-naam kiezen. Resultaat: verwarring en niet interoperabel met andere libraries (iets waar we als webdevvers wel al jaren op hameren richting browservendors).
Maakt niet zoveel uit, maar van conventie was al geen sprake, laat staan van het overboord gooien van.
Wat dat laatste betreft, 10x liever dat dan hoe andere libraries dat doen, met 20 globale functies: $, $$, $A, $E, $AA-ZZ etc
Tsja, maar ik ben ueberhaupt al geen fan van $() als functienaamBosmonster schreef op maandag 17 november 2008 @ 12:38:
[...]
Wat dat laatste betreft, 10x liever dat dan hoe andere libraries dat doen, met 20 globale functies: $, $$, $A, $E, $AA-ZZ etc
Intentionally left blank