Voici un exemple simple:Comment accéder à une fonction dans la portée par un événement onclick?
$(function(){ ///scope
function alerter(number){
switch(number){
case 1:
alert("first");
break;
case 2:
alert("second");
break;
}
}
});
#first{
width: 300px;
height: 300px;
background: red;
}
#second{
width: 300px;
height: 300px;
background: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div id="first" onclick="alerter(1)">
</div>
<div id="second" onclick="alerter(2)">
</div>
Le message d'erreur indique: la fonction "alerteur n'est pas défini"
Je ne peux pas utiliser des js() (ou un EventListener) dans mon projet, il n'y a pas de pièce permanente de divs.
Bien sûr, cela fonctionnerait si la fonction "alerter" ne se trouvait pas dans la fonction scope, mais je ne veux pas déclarer de variables globales.
Merci pour l'aide!
Si vous ne voulez pas vous GLOBALS comment allez utiliser. dans le fichier HTML ...? Lier les écouteurs dans les fichiers JS ou les globals sont nécessaires. – Li357