Pourquoi deux clicks sur le bouton pour faire fonctionner ce code jQuery? Le navigateur charge ce fichier et onload le tag de script est présent dans la section head. Mais ce code ne fonctionne qu'après 2 clics.Javascript charge dynamiquement la bibliothèque jQuery
function j1() {
$("button").click(function() {
$("p").hide();
});
}
function load1() {
var target = document.getElementsByTagName("head");
var newScript = document.createElement("script");
var url =
"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js";
newScript.src = url;
target[0].appendChild(newScript);
newScript = document.createElement("script");
url = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js";
newScript.src = url;
target[0].insertBefore(newScript, target[0].firstChild);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
</head>
<body onload="load1();">
<h2>This is a heading</h2>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<button onclick="j1();">Click me</button>
</body>
</html>
Avez-vous déboguer votre code? Définissez un point d'arrêt sur la première ligne de j1(). –
Je n'ai pas de débogueur pour JS, mais je l'ai vérifié très minutieusement. Je l'exécutais aussi et l'inspectais avec Chrome "inspect". –
J'ai été capable d'ajouter dynamiquement le JQuery au
ou au HTML (vu sur le navigateur inspecter) mais il faut deux appels à J1() pour que le JQuery fasse le travail. BTW, placer un appel à J1() à l'intérieur de load1() ne fonctionnait pas non plus. –