Ceci est mon page HTML:Appel d'une fonction jquery dans la page principale à partir d'un fichier .js distinct.
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="myscript.js"></script>
<script type="text/javascript">
$(document).ready(function() {
function closecontactform(){
alert("closing the form");
};
});
</script>
</head>
<body>
<p id="elementname">Click me to call function</p>
</body>
Ceci est dans le fichier myscripts.js:
$(document).ready(function() {
$('#elementname').click(function() {
alert("click detected");
closecontactform();
});
});
Mes pages réelles sont un peu plus compliqué que cela et comprennent beaucoup de jquery mais est le problème de base montrant seulement le code nécessaire. Je veux être en mesure d'appeler une fonction à partir d'un fichier .js distinct, alors que la fonction est définie dans la page principale. Dans cette version simple basique j'ai essayé de supprimer le $ (document) .ready (function() ... et dans cet exemple simple cela aide cependant que j'aie besoin de cette ligne dans mes pages plus compliquées puisque le retirer semble casser tout le reste je vais sur.
vous verrez le « clic détecté » est appelée, mais la « fermeture de la forme » ne fonctionne pas.
Pouvez-vous me donner des pointeurs?
Merci,
Ok. C'était un problème de portée comme vous le dites, mais je ne pense pas que je pouvais supprimer mon $ (document) .ready() puisque ma fonction actuelle contient en fait un certain nombre de variables et jquery (et css) qui dépendent du html étant chargé. Donc ce que j'ai fait, c'est enlever tout le code de mon fichier .js séparé et le mettre dans le même $ (document) .ready() sur ma page principale. Cela a réglé le problème. – Maureen
ok..J'ai essayé d'expliquer la partie du code jQuery ... vous pouvez probablement retirer les fonctions.Vous pouvez toujours appeler beaucoup de fonctions depuis 'ready' mais vous pouvez avoir' ready' dans différents fichiers accéder aux mêmes fonctions globales – charlietfl
voir comment j'ai enveloppé $ (document) .ready autour de l'appel de la fonction qui est nommée en dehors de 'ready' . La fonction ne s'excurera pas jusqu'à ce qu'elle soit appelée .. indépendamment de l'endroit où vous le définissez – charlietfl