jQuery ahref

  • Hallo allemaal.


    Ik begin net pas met jQuery (het is dus nog nieuw voor mij.


    Ik wil als je op een link drukt dat je naar een andere pagina gaat. Een soort pagina systeem.


    Dit is wat ik heb!



    De startpagina is start.php


    Als ik nu op de button druk dan gaat ie naar home.php


    Als ik dus nu 100 links heb moet ik dit 100 keer doen.
    Is hier een oplossing voor?

    Bezig met een zelf gemaakte source, geschreven vanaf 0 natuurlijk!

  • Voeg een attribuut REL toe aan alle links waarop je drukt met de value zoiets als 'index' of 'home' of wat dan ook maar.
    Heb het volgende stukje voor je geschreven:


    PHP
    $(function () {
    	$('#content').load('/start.php');
    	$('button').live('click', function() {
    		var url = '/' + $(this).attr('rel') + '.php';
    		$('#content').fadeOut(800, function() {
    			$(this).load(url).fadeIn(800);
    		});
    	});
    });


    Dit is alles dat je nodig hebt. $(function() { is het zelfde als Document ready ;)


    En de button element zou er dan zo uitzien:

    PHP
    <button rel="home">

    Kast: HAF922 | CPU: I7-930 @ 4.0GHz | CPU Cooler: Noctua NH-D14 | HDD0: Crucial M4 128GB, HDD1: Kingston SSD 64GB, HDD2/3: WD Black & Green 1TB, HDD4: Seagate 1.5TB | Mem: Kingston HyperX 12GB @ 1600MHz | Graphics: Crossfire HD6970 | Res: 5760x1080

  • Oke dankjewel het heeft me geholpen!


    Het werkt nu perfect. Het werkt infeite als een iframe. Alleen veel mooier!

    Nieuwe reactie samengevoegd met originele reactie op 27.04.12 18:52:33:
    BUMP


    Nog een vraagje. Ik wil er een functie van maken.



    Als ik dit dit gebruik.


    PHP
    <a onclick="loadPage('/test.php');">Test</a>


    Dan krijg ik deze fout:


    PHP
    Uncaught ReferenceError: loadPage is not defined


    Wat doe ik fout?

    Bezig met een zelf gemaakte source, geschreven vanaf 0 natuurlijk!

  • Dit komt omdat een javascript functie geen interactie kan gebruiken.
    Je zou het kunnen oplossen doormiddel van het zo te doen:


    PHP
    <a href="/test.php" class="menu">Test</a>


    Maar wat je dan inprincipe doet is de functionaliteit die in Jquery weg halen en zou ik het zelf op de volgende manier doen:


    PHP
    $(function() {
    	$('#content').load('/home.php');
    	$('a.menu').live('click', function() {
    		var url = $(this).attr('href');
    		$('#content').fadeOut(800, function() {
    			$(this).load(url).fadeIn(800);
    		});
    		return false;
    	});
    });


    PHP
    <a href="/test.php" class="menu">Test</a>


    De class gebruik je op dat moment als selector, maar je kunt er ook nog een style aan koppelen via je CSS (als gewenst) De selector class is meer zodat niet alle A elementen (die extern gaan bijv) niet ook worden ingeladen zolang ze de class MENU niet hebben.

    Kast: HAF922 | CPU: I7-930 @ 4.0GHz | CPU Cooler: Noctua NH-D14 | HDD0: Crucial M4 128GB, HDD1: Kingston SSD 64GB, HDD2/3: WD Black & Green 1TB, HDD4: Seagate 1.5TB | Mem: Kingston HyperX 12GB @ 1600MHz | Graphics: Crossfire HD6970 | Res: 5760x1080

  • Citaat van BrokenTrack
    PHP
    $(document).ready(function() {
    $('a.ajax').click(function(e) {
    e.preventdefaults();
    $('#content).load($(this).href);
    });
    });


    Vergelijkbaar iets? :)


    Edit: beetje fout, heb het hier op CP geschreven.


    e.prevendefaults en de parameter E hoeft in principe niet meegegeven te worden, dit kan korter door return false aan het eind van de click method te plaatsen.


    Daarnaast kun je $(document).ready(function() { afkorten naar $(function() {


    Hoe minder karakters -> hoe minder het in beslag neemt -> hoe sneller een pagina laad

    Kast: HAF922 | CPU: I7-930 @ 4.0GHz | CPU Cooler: Noctua NH-D14 | HDD0: Crucial M4 128GB, HDD1: Kingston SSD 64GB, HDD2/3: WD Black & Green 1TB, HDD4: Seagate 1.5TB | Mem: Kingston HyperX 12GB @ 1600MHz | Graphics: Crossfire HD6970 | Res: 5760x1080

  • Dankjewel allemaal voor de reacties het is gelukt. De pagina loopt nou mooi over.


    Nogmaals dank. En ik begin nu zelfs een klein beetje jQuery te snappen!
    :slotje:

    Bezig met een zelf gemaakte source, geschreven vanaf 0 natuurlijk!

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!