Door
Paco de Wulp
op 31-05-2015 11:36
gewijzigd op 31-05-2015 11:37
3.947 views
Ik heb mijn applicatie nu volgens mij behoorlijk op orde. Afgelopen tijd het MVC-model doorgevoerd en daardoor ook inmiddels een eigen frameworkje opgezet...blablabla dit terzijde..
Nu heb ik javascript gebruikt en heb daar alles mee op kunnen lossen (tot dusver), dus waarom zou ik dan nog jQuery willen leren ? Ik lees dat iedereen wel jQuery gebruikt. Is het echt zoveel handiger ??
Wat zijn jullie meningen/ervaringen ?
Tja, het is een vereenvoudigde javascript code die hetzelfde doet idd.
Maar zoals je kan zien is die code alsnog groter dan de jQuery equivilant.
Het is dan ook maar een klein voorbeeldje, maar de veranderingen in de code worden steeds groter als je meer doet.
Probeer dit nog maar eens te "single linen" met zonder jQuery.
?
Onbekende gebruiker
31-05-2015 14:46
gewijzigd op 31-05-2015 14:48
Als ik dit voorbeeldje probeer te 'single linen', loop ik stuk op de JQuery documentatie http://api.jquery.com/show
Volgens die API documentatie doet show() weinig anders als:
this.style.display='block';
Maar welke return waarde voeg je dan met .append() toe?
En hoe debug je dit als deze regel er aan vooraf zou gaan:
Als ik dit voorbeeldje probeer te 'single linen', loop ik stuk op de JQuery documentatie http://api.jquery.com/show
Volgens die API documentatie doet show() weinig anders als:
this.style.display='block';
Maar welke return waarde voeg je dan met .append() toe?
En hoe debug je dit als deze regel er aan vooraf zou gaan:
jQuery.fx.off = true;
Append neemt in dit geval de complete element "strong" + inhoud en plakt deze in de innerHTML van element "p" vast. Dus je krijgt dus <p>Hello <strong style="display: block;">World!</strong></p>.
Met deze code gebruikt je de fx nog niet. Het kan dat je "strong" langzaam laat "infaden" terwijl hij aan <p> word gehangen maar als die boolean uit staat dan staan die effecten gewoon uit al zeg je dat hij moet doen.
Nog een voorbeeldje, en dan raad ik ook aan om de code dan in je browser te bekijken.
<?php
# request.php
print_r($_POST);
?>
<html>
<head>
<!-- zorg dat je deze bestanden heb en dat ze werken -->
<link rel="stylesheet" type="text/css" media="all" href="/jquery-ui.theme.min.css" />
<script type="text/javascript" src="/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="/jquery-ui.min.js"></script>
</head>
<body>
<form action="#" method="post">
<input type="text" name="date" id="datepicker" value="">
</form>
<div id="result"></div>
<script type="text/javascript">
$(function() {
$("#datepicker").datepicker();
$("#datepicker").change(function(){
$.ajax({
type: 'post',
url: '/request.php',
data: $("#datepicker").serialize(),
success: function(data){
$('#result').html( data );
}
});
});
});
</script>
</body>
</html>
XMLHTTPObject in javascript is veel werk om dat te beheersen, jQuery is gewoon makkelijker.
Frank Nietbelangrijk op 31/05/2015 14:51:59
[quote="An tje op 31/05/2015 14:46:57"]
Als ik dit voorbeeldje probeer te 'single linen'
Welk voorbeeldje?
[/quote]
Het ging er over een voorbeeldje die Wouter had gemaakt die nog wat compacter kon, en An tje gaf ook een compactere code zonder jQuery in 1 lijn geschreven.
Opzich nog "overzichtelijk" tenzij je er nog meer mee gaat doen.
?
Onbekende gebruiker
31-05-2015 16:00
gewijzigd op 31-05-2015 16:01
Als ik sceptisch probeer te blijven; het is op zich wel logisch als .show() z'n eigen pointer teruggeeft zodat je makkelijker code er achteraan kan typen. Maar.. Hoe voorspel ik het gedrag van append()?
Als die node van "strong" onder de node van "p" komt te hangen, wordt die node "strong" dan verplaatst of gekopieerd?
Ik vind de documentatie daarin niet heel duidelijk ofzo.
Natuurlijk heeft JQuery ook sterke punten, maar als ik dan weer eens moet afwijken van de standaard, zoals met de datepicker, dat-ie mooier of uitgebreider moet, of als mijn klanten klagen dat ze er niet met de TAB-toets voorbij kunnen komen, dan moet ik waarschijnlijk OF die JQuery code gaan uitpluizen OF het alsnog zelf opnieuw doen?
Als ik sceptisch probeer te blijven; het is op zich wel logisch als .show() z'n eigen pointer teruggeeft zodat je makkelijker code er achteraan kan typen. Maar.. Hoe voorspel ik het gedrag van append()?
Als die node van "strong" onder de node van "p" komt te hangen, wordt die node "strong" dan verplaatst of gekopieerd?
Ik vind de documentatie daarin niet heel duidelijk ofzo.
Natuurlijk heeft JQuery ook sterke punten, maar als ik dan weer eens moet afwijken van de standaard, zoals met de datepicker, dat-ie mooier of uitgebreider moet, of als mijn klanten klagen dat ze er niet met de TAB-toets voorbij kunnen komen, dan moet ik waarschijnlijk OF die JQuery code gaan uitpluizen OF het alsnog zelf opnieuw doen?
In dit geval verplaatst omdat ik in $() het element selecteer. Als ik de waarde van strong wil hebben kan ik .val() gebruiken of .html(), of een attribute via .attr('id') bijvoorbeeld.
In mijn code vertel ik je moet element <strong> appenden in <p>, daarna <strong> zichtbaar maken.
Je hoeft helemaal niet de jQuery code uit te pluizen, heb ik nog nooit gedaan. Simpelweg trial en error. Je kan via inspectors zoals die in Chrome zit prima kijken wat er gebeurd met de elementen.
En zoals die datepicker, als je dit wilt veranderen kan je gewoon de css aanpassen ervan. Of je gebruikt jQuery om je eigen datepicker te maken, je bent nergens tot verplicht alleen heb je wel effe snel een werkende datepicker zonder dat je je druk hoeft te maken wat voor code er allemaal achter hangt.
Maar nog maals, joe hoeft het niet te gebruiken het is en blijft een optie.
?
Onbekende gebruiker
31-05-2015 17:01
Dat is het. jQuery zal vast niet slecht zijn, zeker niet in de tijd van browserincompatibiliteit.
... Ik wil géén overbodige tools leren, die wellicht niet echt nodig zijn...
...Je hebt geen idee meer hoe het nu echt werkt. Ik, als beginner (inmiddels als een iets gevorderde beginner), wil graag snappen hoe de (onderliggende) techniek werkt...
Zolang je niets uitprobeert, zal je inzicht ook niet verbeteren.
Je hoeft ook niet iets 100% te kunnen doorgronden om het te kunnen gebruiken. Een gemiddelde automobilist weet ook niet hoe een verbrandingsmotor werkt, maar dat belemmert hem/haar niet om zich van A naar B te verplaatsen. Het is immers geen noodzakelijke voorwaarde.
Wat wel in zekere mate een noodzakelijke voorwaarde is, is een zekere hoeveelheid interesse / gezonde portie nieuwsgierigheid en die bespeur ik op dit moment niet echt in je reacties. Het blijkt in ieder geval niet uit je handelen.
Nou, als je het netto gaat bekijken, krijg je juist veel meer code. ;-)
Om jQuery te kunnen gebruiken, zul je eerst een script van zo'n 95 kB moeten includen. En in 95 kB 'gewoon' JavaScript kun je ook een heleboel doen...
?
Onbekende gebruiker
01-06-2015 15:01
Lekker gebruiken als je dat wilt.
Het is er dus waarom geen gebruik van maken.
Jquery is er niet alleen om leuke knopjes klikbaar te maken met een animatie maar ook AJAX requests kunnen worden gemaakt hiermee met simpele regels code.
Degene die het zwaar afkeuren blijven in hun tijd zitten naar mijn idee. Leer wat je kan leren want alles is mooie meegenomen, ook jquery.