[JS] Jquery - .load links

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi

Ik heb het volgende script:

code:
1
2
3
4
function loadContent(contentdiv, url) {
       var theurl = "/url/" + url;        
       $(contentdiv).load(theurl,'', showNewContent);       
}


Hiermee laadt ik het volgende stukje html in:

code:
1
2
3
4
5
6
7
8
9
<div id="vakgebied">
              <ul id="vakgebieden">        
                <li><a href="#portfolio" onclick="loadContent('#portfolioitems', 'portfolio/bekijken/architecture')">architecture</a></li>
               </ul>
</div>

<div id="#portfolioitems">
   hier een tabel
</div>


Dit inladen gaat prima, maar op het moment dat ik op de ingeladen content op een link klik, voert hij wel de loadContent functie uit, maar kan die de #portfolioitems div niet vinden. Omdat die dynamisch is ingeladen.
En in chrome werken de links helemaal niet meer.

Is hier een oplossing voor te vinden of probeer ik iets onmogelijks ?

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 14:28
Heb je al gekeken via Firebug hoe die wat aanmaakt of dat er een error wordt meegegeven. Hier op GoT gaan we ervan uit dat je zelf ook wat hebt geprobeerd voordat je een topic aanmaakt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Firebug geeft geen foutmelding.

In de loadContent functie heb ik ook nog het volgende staan:

code:
1
2
3
4
    if(!($(contentdiv).length)) {
      alert("Het opgegeven element bestaat niet");
      return false;
    }


Deze vangt netjes de fout af, omdat het element via javascript in de DOM is geplaatst herkent hij deze blijkbaar niet.

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 14:28
Oke dankje..
Wat geeft:

JavaScript:
1
alert($(contentdiv).load(theurl);     


Dan zou je zeggen dat je content daar moet komen te staan ;-) Verder is dit geplaatst buiten de
JavaScript:
1
2
3
4
5
6
7
8
9
$(function() {
  function vanjezelf() {
       alert('functie binnen de readystate');
  };
});

function vanjezelf () {
     alert('functie buiten de readystate.');
}
readystate of er juist weer binnen?
Plak eens de gehele code, aan snippets hebben we niet veel.

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Fout:
<div id="#portfolioitems">

Goed:
<div id="portfolioitems">

Acties:
  • 0 Henk 'm!

  • iBasch
  • Registratie: Februari 2009
  • Laatst online: 22:11
Waarom gebruik je onclick? JQuery heeft hier juist wat leuks voor bedacht, namelijk de event helpers.

En zoals al gezegd, gebruik de ready event!

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Wat iBasch zegt. Je kunt veel beter netjes in je JQuery code de click events toevoegen:
Even uit de losse pols (niet getest):

HTML:
1
2
3
4
5
6
7
<div id="vakgebied">
              <ul id="vakgebieden">        
                <li><a href="portfolio/bekijken/architecture" rel="#portfolioitems">architecture</a></li>
               </ul>
</div>

<div id="portfolioitems"></div>


JavaScript:
1
2
3
4
5
6
7
8
$(document).ready(function() {

  $("li > a[:rel]").click(function) {
    var theurl = "/url/" + url;        
    $(this.rel).load(theurl,'', showNewContent);
  })

});

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
eamelink schreef op zaterdag 28 november 2009 @ 17:40:
Fout:
<div id="#portfolioitems">

Goed:
<div id="portfolioitems">
Dat was dus inderdaad het probleem.

Ik ben deze week begonnen met javascript, dus vandaar dat het allemaal nog een beetje knullig in elkaar zit :)

Toch wil google chrome de html links niet goed inladen, de muis pointer verandert niet in een handje, en als ik er op klik gebeurt er ook niks.

De javascript debugger van chrome geeft geen errors, en google helpt hier ook niet echt mee.

Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Grijze Vos schreef op zaterdag 28 november 2009 @ 21:06:
JavaScript:
1
2
3
4
5
6
7
8
$(document).ready(function() {

  $("li > a[:rel]").click(function) {
    var theurl = "/url/" + url;        
    $(this.rel).load(theurl,'', showNewContent);
  })

});
Hier is de variabele 'url' niet bekend. Dus via de rel zowel de te laden url als de ID van de div meegeven wordt ook lastig. Wellicht is een <a tag hier beter om daarmee tegelijk te zorgen dat e.e.a. kan werken voor zoekmachines zonder javascript.

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
oh, dat had this.href moeten zijn.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info

Pagina: 1