8
votes

JQuery Ajax Charger () JavaScript ne s'exécute pas?

J'ai lu plusieurs postes sur ce problème, mais je ne peux pas le résoudre.

Je charge un fichier HTML dans une DIV. Le fichier que je charge contient une liste non ordonnée. Cette liste doit être étendue (un menu avec des articles sous-menu) et fermé. Par conséquent, j'ai besoin de JS. Mais malheureusement, ce script n'est pas chargé.

Quelqu'un peut-il m'aider?

serait si génial! Merci beaucoup :)


2 commentaires

Montrez-nous du code ...


Meilleure réponse de ce message: Stackoverflow.com/a/16352425/484358


8 Réponses :


-1
votes

Vous devez appeler explicitement ahover sur la liste non ordonnée. Voir le DocumentationAn .


0 commentaires

2
votes

permet de vous assurer que vous disposez de JQuery chargé en premier lieu, assurez-vous que le lien vers la bibliothèque est dans la tête de votre HTML, alors quelque chose comme ceci:

.getScript()


4 commentaires

Merci! Où et comment dois-je utiliser cela? N'y a-t-il aucune autre possibilité?


Eh bien, j'ai du mal à comprendre ce que vous voulez faire, savez-vous bien sûr si JQuery est chargé sur votre page en premier lieu?


Oui, ma page fonctionne jusqu'à présent. JQuery doit travailler à cause de la demande LOD (). La seule chose est la JS dans le contenu chargé. Je ne sais pas comment résoudre ça ... :(


ok merci jpsilvashy je vais le tester et bien être de retour dans une minute :)



0
votes

ahh, je vois ... Si vous voulez simplement charger une utilisation HTML:

$("selector for div ").load("/path_to_html.html div#main");


6 commentaires

Cela fonctionne, le menu que vous voyez est le contenu chargé. Ce menu doit être plié ensemble (le JS le fait). et ce script n'est pas chargé. c'est le problème :)


Juste pour indiquer clairement comment ça devrait ressembler. Ouvrez JOHNLIKESIT.JO.OHOST.DE/HELPME/HTMLContent.html I ' VE inclus les fichiers JS dans le deuxième fichier pour vous montrer ce que je veux dire :)


Même lorsque les fichiers JS sont inclus dans les deux (le premier fichier et le fichier HTML à charger dans la première, cela ne fonctionne pas :(


Donc, vous ne devriez donc pas avoir besoin de JavaScript dans le fichier en cours de chargement, nous ne modifions que le DOM, donc ce qui est inséré sera toujours sous l'influence de la JS que vous rencontrez sous votre fichier d'origine, y compris tous vos événements et tout . Je ne sais pas ce que vous essayez finalement d'accomplir, est-ce que vous pouvez essayer de l'expliquer différemment?


D'accord, je vais essayer de :) la partie qui doit être insérée contient un menu pouvant être étendu. Sans JavaScript, cela ne pouvait pas être fait (autant que je sache). Donc, je charge le contenu HTML du fichier "htmlcontent.html" dans le fichier div "conteneur" dans mon "index_helpme.html" cela fonctionne jusqu'à présent. Le seul problème est d'interagir avec le HTMLContent.html chargé. Si je veux changer le style CSS avec jQuery ou faire des effets, cela ne fonctionne pas. J'espère que cette explication est claire pour comprendre :) Merci pour votre aide!


Il y a probablement une meilleure façon de créer une page d'accueil au lieu de charger le contenu via JQuery. je ne sais pas. Si vous avez des conseils, laissez-moi savoir :)



2
votes

Juhu. J'ai résolu ça. Je ne sais pas que c'est la voie la plus élégante, mais cela fonctionne :)

jpsilvashy votre gelotte (); l'a fait :) J'ai inclus ces deux lignes de mon contenu qui devraient être chargés: xxx

qui fonctionne.

pour tous ceux qui ont le même problème, il y a un petit indice. Vous devez supprimer les étiquettes du corps et de la tête. S'ils sont inclus, cela ne fonctionne pas.

Mais maintenant il y a encore une question: pourquoi dois-je inclure cela dans le contenu chargé? Je pense que le JavaScript doit être chargé après le chargement du contenu dans le DOM.

mais que seulement une hypothèse!

Merci pour votre grande aide! >


1 commentaires

Est-ce que personne ne connaît une explication?



12
votes

Vous voulez charger via AJAX dans une DIV sur votre page, appelons-le;

1)

de (abc.html)

2) Le produit pour remplir loadsffhere provient de xyz.html

alors faites-le simplement; xxx

mais attendez !! Vous ne voulez pas avoir à charger tout à partir de xyz.html, vous voulez simplement charger une partie de xyz.html dire

de (xyz.html) < / p>

alors faites cela; xxx

mais attendez !! Disons à l'intérieur de

est un accordéon, ce qui signifie qu'il doit être initialisé, ce qui signifie que vous devez également inclure également les javascripts ... hmm, quoi do ...

vous penseriez à ce que ce soit; xxx

bien ce qui suce ci-dessus parce que a) u besoin de créer un fichier JS externe et b) Vous faites réellement 2 appels HTTP, lorsque vous pouvez le faire avec 1 appel http si vous l'avez fait par voie normale non Ajax.

La meilleure solution consiste à obtenir 2 choses avec 1 appelez le ( HTML et la ligne JS - 1, 1 http) Voici comment vous le faites; xxx

ceci charge le #loadmesonly div et tout Script Tags

Le truc ici est des virgules. Vous pouvez choisir de charger les domaines que vous voulez


1 commentaires

Sauf - maintenant que vous avez chargé ce script, comment vous le gérer?



2
votes

Cette solution fonctionne mieux. Utilisation d'une fonction de rappel après le chargement du conteneur DIV ou de contenu spécifique.

$('#CONTAINER').load('URL_TO_LOAD HTML_ELEMENT_TO_PLUCK_FROM_PAGE_AND_INSERT_INTO_CONTAINER', function () {
    $.getScript('PATH_TO_SCRIPT_THAT_YOU_REQUIRE_FOR_LOADED_CONTENT');
});


0 commentaires

2
votes

Le script ne peut pas utiliser le document.Ready, le document déjà prêt. Il suffit de mettre le script entre les étiquettes de script.

faux: xxx

correct: xxx


0 commentaires

0
votes

Vous pouvez charger de manière dynamique du fichier JavaScript avec l'aide de jquery.getscript et définir une fonction de rappel. Lorsque le script a été chargé, la fonction de rappel appelée. Voici un exemple de chargement Highlightjs bibliothèque de CDNJS : xxx


0 commentaires