Ce code fonctionne correctement: mais cela ne: p> Il donne le message d'erreur:
"RéférenceError: Works n'est pas défini" p> une fonction d'alerte simple (), mais uniquement avec le paramètre "Index": P> onclick="alert(' + index + ')"
3 Réponses :
Le problème indiqué est
montre-alject n'est pas défini p> blockQquote>
donc l'Onclick = n'est pas capable de trouver votre fonction. p>
Lorsque vous utilisez
onclick = code> avec une fonction, cette fonction doit être définie comme un global . La définissant dans le document doc.Ready ne le rend que disponible dans ce bloc Doc.Ready, ce n'est pas global, il ne peut donc pas le trouver p>
déplacer la fonction en dehors de doc.ready et il le trouvera . P>
Il existe également une erreur avec des guillemets manquants, autour de l'argument, ajouté dans l'extrait de l'extrémité ci-dessous. p>
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="students"></div>
problème que vous avez est la portée de la fonction et ne pas citer la valeur dans l'appel de la fonction. Il est préférable de ne pas utiliser d'événements inline, mais de lier les auditeurs d'événements à l'élément.
Vous feriez mieux d'utiliser la délégation d'événements et les attributs de données P>
$(document).ready(function() { // bind click handler to students, listen for clicks on li elements // event delegation $("#students").on("click", "li", function() { // get the li that was clicked var li = $(this); // read the data attribute var subject = li.data("subject"); console.log(subject); }); $.getJSON('./record.json', function(data) { var studentsHTML = '<ul>'; $.each(data, function(index, student) { studentsHTML += '<li data-subject="' + student.subject + '">' + student.name + '</li>'; }); studentsHTML += '</ul>'; $('#students').html(studentsHTML); }); });
Inspectez l'élément LI sur lequel vous avez ajouté l'événement OnClick. Votre oncclick ressemble à ceci: - apparition de la présence ('math') p>
pas comme ça: - apparition de la montre (maths) p>
Le correctif s'échapperait correctement les citations comme indiqué par Freedomn-M P>
et cela devrait fonctionner p>
Comprendre la délégation d'événement | JQuery Learning Center
Parce que votre clic ressemble à ceci lorsque vous avez rendu:
onclick = "apparaît (maths (code)" code> Il recherche la variable
math code>, pas la chaîne
"math" Code>