165 votes

Comment ajouter jQuery dans un fichier JS

Je dispose d'un code spécifique au tri des tableaux. Comme ce code est commun à la plupart des pages, je veux créer un fichier JS qui contiendra le code et toutes les pages qui l'utilisent pourront y faire référence.

Le problème est le suivant : comment ajouter jQuery et le plugin de trieur de tableaux dans ce fichier .js ?

J'ai essayé quelque chose comme ça :

document.writeln('<script src="/javascripts/jquery.js" type="text/javascript"></script>');
document.writeln('<script type="text/javascript" src="/javascripts/jquery.tablesorter.js"></script>');

mais cela ne semble pas fonctionner.

Quelle est la meilleure façon de procéder ?

5voto

Salty Points 4407

Le problème est que vous utilisez </script> dans la balise script, qui termine la balise script. Essayez ceci :

document.writeln('<script src="/javascripts/jquery.js" type="text/javascript"></sc'+'ript>');
document.writeln('<script type="text/javascript" src="/javascripts/jquery.tablesorter.js"></sc'+'ript>');

5voto

Faisal Mq Points 188

Voici la solution, que j'ai adoptée comme une combinaison de certaines solutions proposées dans d'autres forums.

De cette façon, vous pouvez faire référence à la fois aux fichiers css et aux autres fichiers js dans un seul fichier js, ce qui vous permet de n'effectuer la prochaine modification qu'à un seul endroit. Veuillez me faire savoir si vous avez des questions à ce sujet.

J'ai fait ce qui suit :

  1. J'ai créé un fichier js avec le nom jQueryIncluder.js.

  2. a déclaré et exécuté le code suivant dans ce fichier

    function getVirtualDirectory() {
      var vDir = document.location.pathname.split('/');
      return '/' + vDir[1] + '/';
    }
    
    function include_jQueryFilesToPage() {
      var siteAddress = location.protocol + '//' + document.location.hostname + getVirtualDirectory(); 
      var jqCSSFilePath =  siteAddress + 'includes/jQueryCSS/ehrgreen-theme/jquery-ui-1.8.2.custom.css';
      var jqCoreFilePath = siteAddress + 'includes/jquery-1.4.1.min.js';
      var jqUIFilePath =   siteAddress + 'includes/jquery-ui-1.8.2.custom.min.js';
      var head  = document.getElementsByTagName('head')[0]; 
    
      // jQuery CSS jnclude
      var jqCSS = 'cssIDJQ';  // you could encode the css path itself to generate id.
      if (!document.getElementById(jqCSS)) { 
        var link  = document.createElement('link'); 
        link.id  = jqCSS; 
        link.rel  = 'stylesheet'; 
        link.type = 'text/css'; 
        link.href = jqCSSFilePath; 
        link.media = 'all'; 
        head.appendChild(link); 
      } 
    
      // Core jQuery include
      var jqc = "coreFileRefIDJQ";  
      if (!document.getElementById(jqc)) 
        document.write('<scr' + 'ipt type="text/javascript" id="' + jqc + '" src="' + jqCoreFilePath + '"></scr' + 'ipt>');
    
      // jQueryUI include
      var jqUI = "uiFileRefIDJQ";  
      if (!document.getElementById(jqUI)) 
        document.write('<scr' + 'ipt type="text/javascript" id="' + jqUI + '" src="' + jqUIFilePath + '"></scr' + 'ipt>');
    }
    
    include_jQueryFilesToPage();
  3. J'ai référencé le fichier jQueryIncluder.js ci-dessus dans un autre fichier js ou xsl de mon projet .Net comme suit :

    <script type="text/javascript" src="~/includes/jQueryIncluder.js"></script>

J'espère que mon effort est apprécié.

Merci

5voto

Amar Magar Points 411

Il n'est pas possible d'importer un fichier js à l'intérieur d'un autre fichier js

La façon d'utiliser jquery dans js est la suivante

importez le fichier js dans la page html ou toute autre page d'affichage que vous utilisez et dans laquelle vous allez inclure le fichier js.

vue.html

 <script src="<%=request.getContextPath()%>/js/jquery-1.11.3.js"></script>
 <script src="<%=request.getContextPath()%>/js/default.js"></script>

default.js

$('document').ready(function() {
    $('li#user').click(function() {
         $(this).addClass('selectedEmp');
    });
});

cela va certainement fonctionner pour vous

4voto

chermosillo Points 732

Il existe un plugin pour jquery qui vous permet d'inclure les fichiers dont vous avez besoin dans un autre fichier js, voici son lien http://tobiasz123.wordpress.com/2007/08/01/include-script-inclusion-jquery-plugin/ .

De plus, cette ligne document.write écrira les balises script dans le html et non dans votre fichier js.

J'espère donc que cela pourra vous aider un peu à résoudre votre problème.

2voto

Steve Butabi Points 36

Si quelqu'un recherche cela, voici une solution avec jquery.

http://api.jquery.com/jQuery.getScript/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X