10
votes

C'est-à-dire la fonction prête jQuery ne fonctionne pas

Apparemment, de nombreuses personnes ont rencontré ce problème, mais je n'ai pas encore de pouvoir trouver une solution qui fonctionne.

J'ai un peu de code qui doit être exécuté une fois la page chargée, et donc je l'ai bloqué À l'intérieur du bloc suivant: P>

<script type="text/javascript" src=""></script>


6 commentaires

Qu'est-ce que "..Plus de code ici" contient?


Ne passez pas une chaîne à Settimeout .


Votre src vide est-il en train de causer des problèmes. Je suppose que vous avez donné une vraie URL, non?


... Plus de code est un grand de code, mais c'est-à-dire que c'est ne pas y arriver aussi loin. Ajout d'une alerte à $ (document) .Ready () avant d'appeler Initialiser () ne se déclenche pas. @Rocket SRC n'est pas vide - je ne faisais que simplement illustrer le format des inclusions, car certaines personnes ont soulevé cela comme un problème potentiel dans IE.


@Elie: Ok, je voulais juste vérifier :-p


@Elie: Vérifiez votre console, ma supposion est que c'est-à-dire côtomé d'exécuter JavaScript plus tôt dans la page, car un autre script avait une erreur.


7 Réponses :


15
votes

Je ne vois rien de mal ici, mais il y a juste quelques choses que j'aimerais signaler.

Avant de le faire, cochez la console JavaScript de IE, mon devin est un script antérieur a une erreur, Et c'est pourquoi celui-ci ne devient jamais couru.

au lieu de $ (document) .Ready (fonction (fonction () {}); , vous pouvez réellement faire $ ( fonction () {}) . Cela ne devrait pas faire une différence, cependant.

Aussi, veuillez ne pas passer des chaînes à Settimeout (ils obtiennent eval d dans le global Portée), transmettez une fonction. xxx

aussi, êtes-vous sûr de déclarer $ jQuery (ne doit-il pas être $. Erreur )? xxx

EDIT: Si vous utilisez IE8 ou moins, il n'ajoute pas console sauf si le débogueur est ouvert (Je souhaite que quiconque pensait que c'était une bonne idée a été viré). Si l'une de vos inclut utilise console.log , il serait non défini , arrêtez ainsi toute exécution du script.

essayez d'ajouter ceci en haut de la page : xxx

Il créera une "fausse" objet console , de sorte que console.log sera défini. < / p>


8 commentaires

J'ai mis à jour la sécurité de la façon dont vous avez suggéré et remplacé $ jQuery avec $, mais cela n'a pas fonctionné. J'ai ajouté une alerte () avant le premier appel à initialiser, et il n'est pas déclenché dans IE.


@Elie: Vérifiez la console, peut-être qu'un script antérieur est en train de mourir. Il n'y a rien dans ce script qui causerait l'événement prêt pour ne pas déclencher.


@Elie: Avez-vous console.log dans votre code par hasard? Je sais que c'est-à-dire (je pense 8), n'ajoute pas l'objet à moins que le débogueur ne soit ouvert (stupide, je sais, mais c'est-à-dire).


Non, je n'ai pas mis de journalisation directe dans le script. Je me demande si cela a été réparé depuis un moment et il y a un problème de mise en cache qui se passe, ou s'il est toujours brisé!


Nope - c'est quelque chose sur le débogueur. Lorsque j'ai fermé une refonte la fenêtre entière, elle est retournée au problème.


@Elie: bizarre. Dunno ce qui se passe = (


@Elie: Pouvez-vous ajouter que lorsque le débogueur est ouvert, le code fonctionne à la question. Alors, d'autres peuvent le voir et aider?


Laissez-nous Continuer cette discussion en chat



0
votes

Essayez de mettre votre xxx

au bas du code. Il pourrait s'agir que c'est-à-dire que c'est non analysé le code initialisée () avant la fonction prête à être appelée.


2 commentaires

Les déclarations de fonctions sont houé au sommet de leur portée entourant.


Comme je l'ai mentionné dans la question - les scripts sont aussi loin du dossier que je peux les mettre, mais à cause du cadre, ils ne peuvent pas être en bas. Cependant, les scripts sont plus poussés dans le dossier de tout élément qu'ils affectent.



5
votes

a juste eu le même problème. Presque cassé mon cerveau essayant de comprendre ce qui ne va pas.

s'est tourné pour être très simple - Quelqu'un code exécuté précédemment utilisé console.log (...) , mais ce n'est pas défini dans IE Sauf si les outils DEV sont activés.

Le correctif est simple - Soit supprimer / commentaires console.log ou ajouter ce code à l'un de vos fichiers avant la première console.log est utilisé : xxx


1 commentaires

C'est la réponse la plus simple



0
votes

écrire en dessous de deux lignes en haut de la page.

    window.console = window.console || {log:function(){}};
    if (typeof console === "undefined"){
        console={};
        console.log = function(){};
    }


0 commentaires

0
votes

Je ne sais pas où j'ai trouvé cette solution, mais cela fonctionne pour mon IE10.

Un exemple de mon projet: xxx

Ces codes sont exécutés après chargement de tout le contenu HTML.


0 commentaires

0
votes

Cela a fonctionné pour moi. J'ai remplacé xxx

avec xxx


0 commentaires

1
votes

Utilisation (fonction ($) {}) (jQuery); code> corrigé le problème pour moi.

(function($) {
  // body code
})(jQuery);


0 commentaires