2009-06-19 3 views
0

J'utilise IE 8, j'ai une page web avec 2 extensions jquery (l'une est un menu, l'autre est une fbox textbox). Quand je lance chacune des extensions seuls, ils fonctionnent très bien, quand je les accolés j'obtiens l'erreur js suivante:plusieurs extensions jquery sur la même page provoquent une erreur, des solutions à quelqu'un?

Erreur: Cet objet ne gère pas cette propriété ou méthode

J'ENREGISTRER les gestionnaires du manière suivante:

TextBox:

<script type="text/javascript"> 
     $().ready(function() { 
      $('#ctl00_Main_Status1_tbStatus').textboxhelp({ help: 'I am thinking of a...' });   
     }); 
    </script> 

Le menu:

<script type="text/javascript"> 
     $(function() { 
      alert('in menu'); 
      $("#1, #2, #3").lavaLamp({ 
       fx: "backout", 
       speed: 700, 
       click: function(event, menuItem) { 
        return false; 
       } 
      }); 
     }); 
    </script> 

Toute aide serait grandement appréciée, je suis très nouveau à la jquery ...

Répondre

0

Lorsque vous les exécutez ou les inclure? Si l'erreur se produit lorsque vous les incluez, il y a probablement une collision dans les noms de fonctions ou quelque chose. Dans les deux cas, essayez de télécharger Firefox et d'exécuter le plugin FireBug pour voir si cela aide à dépister le problème.

+0

l'erreur se produit au démarrage de la page. Je ne suis pas sûr de ce que vous entendez par «quand je les inclue». J'utilise ie 8 outil de débogage c'est plutôt cool. J'en suis venu à la conclusion qu'un contrôle jquery appelle les deux méthodes, puisqu'il ne contient pas les deux fonctions de mappage et renvoie cette erreur. J'ai essayé d'effectuer un état If mais ça ne semble pas aider, pas plus que le fait que j'appelle le contrôle par son id ... –

-1

Votre deuxième script The Menu ne devrait-il pas être inclus dans le gestionnaire document.ready?

$().ready(function() { 
    /*the menu script here*/ 
    /*the textbox script here */ 
}); 
1

Cela peut être l'alias $, vérifiez les plugins pour voir.

(function($){ 
    //theplugin code here 
})(jQuery); 

Ceci permet l'utilisation de l'intérieur $ sans confusion


CE @ Jeff:

$(function(){ 
    //stuff here 
}); 

est le même que:

(function($) { 
    $(document).ready(function() { 
    // your code here 
    }) 
})(jQuery) 

mais peut-être pas aussi bon as (sans la liaison (jQuery) à la fin), qui ne joue que si vous utilisez d'autres bibliothèques utilisant le $.

0

Ok, merci à tous pour votre aide. La réponse de Mark était la solution à mon problème. J'ai utilisé la troisième option et bien ... ça a marché. En ce qui concerne votre réponse Jeff, Eh bien, j'ai déplacé le code autour, mais même si je l'ai corrigé à ce que vous avez dit, il m'a donné la même erreur.

Donc, si quelqu'un est intéressé ou va arriver à tomber dans la même erreur est ici le code pour mes deux contrôles:

Ctrl 1:

<script type="text/javascript"> 
     (function($) { 
      $(document).ready(function() { 
      $('#ctl00_Main_StatusCtrl_tbStatus').textboxhelp({ help: 'I am thinking of...' }); 
      }); 
     })(jQuery) 
    </script> 

Ctrl 2:

<script language="javascript" type="text/javascript"> 
    (function($) { 
     $(document).ready(function() { 
      $("#1, #2, #3").lavaLamp({ 
       fx: "backout", 
       speed: 700, 
       click: function(event, menuItem) { 
        return false; 
       } 
      }); 
     }); 
    })(jQuery) 
</script> 

encore une fois merci.

0

Plus précisément: objet ne prend pas en charge cette propriété ou méthode

sont vos comprend dans l'ordre, et au-dessus de vos scripts? Vous pouvez obtenir ce type d'erreur si vous n'avez pas tous vos fichiers plugins dépendants.

Mettez votre jquery include first ...

Questions connexes