2009-11-12 13 views
2

J'essaie d'appeler une fonction simple avec alerte, mais cela ne marchera pas lorsque j'essayerai d'appeler la fonction (contenue dans un fichier js externe) depuis ma page html.Appel de la fonction js dans un fichier js externe

J'ai une importation et l'appel est très simple. Aucune suggestion?

<head> 
<script src="/js/jsFunctions.js" type="text/javascript"></script> 

Dans mon code, j'appelle

<a href="javascript:displayAlertText('someText');"> 

A l'intérieur des js J'ai quelques-uns jquery suivi d'une fonction

function displayAlertText(someText) 
    { 
     alert('alert' + someText); 
    } 
+0

Ça semble aller !? – powtac

+0

assurez-vous que le fichier js est vraiment inclus. Mettre une alerte («oui je suis inclus»); dans le fichier js en dehors de la fonction displayAlertText, – anddoutoi

+0

L'utilisation d'un débogueur de console (comme les outils de développement Web pour IE8 ou Firebug pour Firefox vous fournirait un message d'erreur significatif que vous pourriez publier avec votre code.) –

Répondre

3

En pur jQuery vous faire comme:

$(document).ready(function(){ 

    $('a').click(function(){ 
     alert('here'); 
    }) 

}) 
0

essayer à la place ...

Si cela ne vous aide pas, je commencerais à m'assurer votre fichier javascript se charge correctement et ne contient pas d'erreur de syntaxe simple quelque part. Affichez votre page avec Firebug dans Firefox et recherchez les avertissements et les erreurs.

0

Vous avez mentionné jQuery. La fonction est-elle autonome ou à l'intérieur d'un objet jQuery (c'est-à-dire enveloppée dans une autre fonction)? Cela fait la différence.

Mis à part à partir de ce problème, la façon dont vous appelez la fonction n'est pas propre. Déplacez-le vers l'attribut onclick ou mieux utilisez jQuery.

5

Ce que vous faites semble que cela devrait fonctionner. Le problème est probable ailleurs.

Les préfixes "Javascript:" sont vraiment plutôt horribles. Au lieu de cela, essayez de réécriture que:

<a href="#" onclick="displayAlertText('someText'); return false;"> 

Au-delà (que je ne pense pas que cela fait être à l'origine), vous avez commis le péché cardinal de dire « Il ne fonctionne pas ». Avez-vous eu des erreurs Javascript dans la console? Je suppose que vous l'auriez fait, sauf si une fonction valide a vraiment été appelée.

De même, essayez d'appeler explicitement la fonction JS depuis un bloc <script> sur votre page, pour voir à quel moment elle échoue.

Revérifiez ainsi que le fichier externe a vraiment été chargé au moment où vous cliquez sur le lien - peut-être mettre une ligne au bas du fichier de script externe pour aider à vérifier, tels que

alert('External file loaded.'); 

EDIT (basé sur un commentaire): OK, nous avons donc établi que vous pouvez appeler la méthode du JavaScript "normal" sur votre page. Cela signifie que le problème réside dans la façon dont vous essayez d'appeler le script à partir de votre lien hypertexte.

Avez-vous passé votre HTML via un validateur? Si la syntaxe n'est pas valide, les agents utilisateurs peuvent l'interpréter comme ils le souhaitent, y compris en l'ignorant complètement.Si le code HTML valide, alors il peut être utile d'afficher un lien vers votre code HTML complet afin que les autres puissent le voir et voir où se situe le problème. C'est peut-être quelque chose comme une autre fonction remplaçant l'événement onclick pour le lien, et ainsi votre gestionnaire d'événements est perdu.

+0

merci, quand j'appelle la fonction d'un bloc de script cela fonctionne très bien. im également en utilisant les fonctions jquery à partir du fichier externe et ils fonctionnent tous très bien. La seule différence entre la fonction qui isint fonctionne et celle de jquery est qu'il est défini en dehors du $ (document) .ready (function() – cduggan

Questions connexes