2009-09-14 7 views
0

J'essaye de faire un menu simple d'accorion utilisant jQuery avec Wordpress.wordpress jquery manquant: après l'ID de propriété

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

var $j = jQuery.noConflict(); 


$j("#leftmenupane p.leftmenu_head").click(function(
{ 
    $j(this).css({'background-image' : 'url(down.png)'}).next("div.leftmenu_body").slideToggle(300).siblings("div.leftmenu_body").slideUp("slow"); 
    $j(this).siblings().css({'background-image' : 'url(left.png)'}); 
}); 

</script> 

<div id="leftmenupane" class="leftmenu_list"> 
    <p class="leftmenu_head">Header-1</p> 
    <div class="leftmenu_body"> 
     <a href="#">Link-1</a> 
     <a href="#">Link-2</a> 
     <a href="#">Link-3</a> 
     <a href="#">Link-4</a> 
    </div> 
    <p class="leftmenu_head">Header-2</p> 
    <div class="leftmenu_body"> 
     <a href="#">Link-1</a> 
     <a href="#">Link-2</a> 
     <a href="#">Link-3</a> 
    </div> 
    <p class="leftmenu_head">Header-3</p> 
    <div class="leftmenu_body"> 
     <a href="#">Link-1</a> 
    </div> 
</div> 

Il s'agit en fait d'un exemple de tutoriel. Mais je ne peux pas le faire fonctionner. Je sens une erreur stupide ici mais je suis incapable de la trouver. Tout ce que j'obtiens est une erreur "missing: after property id" dans Firebug sur la ligne "$ j (this) .css ({'background-image': 'url (bas .....).

Aidez-nous s'il vous plaît.

Répondre

1

essayez de changer le côlon à une virgule & se débarrasser de ur supports tourbillonnant, comme ceci:

$j(this).css('background-image', 'url(down.png)'); 
$j(this).siblings().css('background-image', 'url(left.png)'); 
+0

Merci pour la réponse rapide, mais cela entraîne à nouveau la même erreur. –

0

Juste par curiosité, essayez de changer la $j = jQuery.noConflict(); à j = jQuery.noConflict();

Je dis seulement parce qu'ils erreur que vous voyez habituellement apparaît quand une variable est non disponible au moment de la compilation. Je me demande si la définition de $ j annule presque le non-conflit ou quelque chose comme ça. Essayez-le.

+0

Essayé 'j = jQuery.noConflict();' et en changeant j à un certain nom de variable aléatoire (jhkg) pour s'assurer qu'il ne soit pas en conflit avec une autre variable sans succès. Mais quand j'essaye: '$ j (this) .siblings(). Css ('background-image', 'url (left.png)');' dans une console javaScript dans Firebug il sais 'SyntaxError: unterminated string literal' et $ simple renvoie: 'ReferenceError: $ j n'est pas défini source = avec (_FirebugCommandLine) {$ j \ n};' On dirait que $ j n'est pas initialisé ou quelque chose. –

+0

Bien après que vous ayez j = jQuery.noConflict() ;, vous n'utiliserez j que partout ailleurs. (N'utilisez plus $ j, puisque vous ne l'avez jamais déclaré) – idrumgood

0

J'ai changé le code:

var $j = jQuery.noConflict(); 

$j(function() { 

$j("#leftmenupane p.leftmenu_head").click(function() 
{ 
    $j(this).css('background-image' , 'url(down.png)').next("div.leftmenu_body").slideToggle(300).siblings("div.leftmenu_body").slideUp("slow"); 
    $j(this).siblings().css('background-image' , 'url(left.png)'); 
}); 

}); 

et il fonctionne maintenant correctement. Merci quand même, quand vous m'avez poussé dans la bonne direction :)

0

C'est probablement une erreur de syntaxe. citant la ligne de code ci-dessus ...

$j("#leftmenupane p.leftmenu_head").click(function(

il semble que vous ne fermons pas vos parenthèses après la déclaration de fonction. essayez ceci ...

$j("#leftmenupane p.leftmenu_head").click(function() 
Questions connexes