JQuery-caseovergang voor laden van extern html-bestand?

Hoe kan ik div-inhoud laden van een extern bestand, maar ook een case-statement gebruiken in het proces? Zou er iets kunnen zijn met mijn Jquery-code? Eigenlijk .. ik ben in de war ??

JQuery-code:

$('.click-test').click(function() {
switch (this.id) {
case "test":
$('#test').load('external-file.html #test');
  break;

  case "test2":
  etc..
  });

html-pagina:

<div class="click-test" id="test">click test</div>
<div id="test">place words from external file here</div>

extern bestand .html

<div id="test">some words</div>
0

2 antwoord

De jQuery-code is in principe correct. De "dit" verwijst naar het HTML-element zoals u vermoedde en is ingesteld. Dus je schakelaar werkt.

<div class="click-test" id="test">click test</div>

U hebt echter 2 div's in uw basis-HTML-pagina die beide de ID van "test" hebben. Elke ID moet uniek zijn op een HTML-pagina (inclusief de inhoud die u laadt). Dus je moet een beetje refactoring doen.

U kunt bijvoorbeeld de HTML wijzigen in:

<div class="click-test" data-loadid="test">click test</div>

En de JavaScript om:

$('.click-test').click(function() {
    switch($(this).attr("data-loadid")) {

Dit zou gelezen worden van een attribuut genaamd 'data-loadid' met behulp van de functie attribute van jQuery. Vervolgens kunt u doorgaan met het laden van de externe div-inhoud met behulp van laden zoals u had gedaan. (Hoewel, wilt u misschien de bladwijzer verwijderen omdat deze overbodig is?)

0
toegevoegd

De this.id verwijst naar niets, omdat dit object de .click-test div is die geen ID-attribuut heeft. Al het andere ziet er goed uit, behalve dat ik niet weet of er een spatiebalk moet verschijnen na uw .html #test

0
toegevoegd
Beide div's hebben een ID-kenmerk zoals ik in mijn antwoord heb genoemd. Helaas zijn ze hetzelfde.
toegevoegd de auteur WiredPrairie, de bron
Hmm ik denk dat ik dat de eerste keer dat ik het heb gelezen heb gemist. Dan is het probleem, je hebt 2 dezelfde ID's, je kunt niet 2 dezelfde ID's hebben, jQuery zal de eerste vinden en zoekt geen andere.
toegevoegd de auteur Niels, de bron