2010-05-17 15 views
0

par défaut, si nous avons quelque chose comme cela comme un en-tête en jQuery Accordéon:Jquery accordéon: ensemble d'actions à un élément spécifique à l'intérieur en-tête

<h3> 
    <div class="1">TEXT</div> 
    <div class="2">ICON</div> 
    <div class="3">BUTTON</div> 
</h3> 

en cliquant n'importe où sur ce point, des œuvres d'accordéon et basculer l'élément suivant et ...

la question est, comment pouvons-nous définir une option et sélectionnez un élément spécifique (comme: 'div' avec la classe '1') pour cliquer dessus et basculer l'accordéon.

Je veux dire que je ne veux pas que tout l'en-tête reste cliquable. Je veux juste cliquer sur une icône ou div o quelque chose à l'intérieur de l'en-tête et basculer ouvrir/fermer l'accordéon.

merci

Mise à jour 1:

HTML:

<div id="testAcc"> 

    <h3> 
     <div class="one">Text</div> 
     <div class="two">Icon</div> 
     <div class="three">Button</div> 
    </h3> 
    <div class="accBody"> 
     text text text text text text text text text text 
    </div> 

    <h3> 
     <div class="one">Text</div> 
     <div class="two">Icon</div> 
     <div class="three">Button</div> 
    </h3> 
    <div class="accBody"> 
     text text text text text text text text text text 
    </div> 

</div> 

JS:

$('#testAcc').accordion({ 
     autoHeight: false, 
     header: 'h3', 
     collapsible: 'ture', 
}); 

ce code fonctionne bien. mais je veux utiliser quelque chose comme (en-tête: 'h3> .one') signifie que je veux définir une classe et un élément spécifiques dans l'en-tête, puis si l'utilisateur clique UNIQUEMENT sur cet élément, l'accordéon s'ouvrira ou se fermera ...

+0

nous montrent le javascript afin que nous puissions voir ce que vous êtes faire ... –

+0

html et js ajouté. Je vous remercie. –

Répondre

0

vous pouvez return false avec un gestionnaire de clic sur les éléments que vous ne voulez pas avoir l'effet de basculement de l'accordéon, comme ceci:

$('#testAcc').accordion({ 
    autoHeight: false, 
    header: 'h3', 
    collapsible: true 
}); 
$("#testAcc .two, #testAcc .three").click(function() { 
    return false; 
}); 
​ 

You can see a working demo here

+0

merci pour votre réponse. mais si la classe .one, .two & .three a FLOAT, alors nous avons un espace vide qui reste dans H3. comme ceci: H3: <| --one-- || --two-- || --three-- | > Si l'utilisateur clique sur cet espace vide, l'accordéon bascule en fermeture/ouverture. –

+0

@ J.Tay - C'est tout CSS :) Si vous donnez '.one' une bordure, vous verrez qu'il prend tout cet espace, si vous ne le voulez pas vous avez besoin de changer le style flottant ou quelque chose ... le côté jQuery est correct, vous êtes en effet en train de cliquer sur '.one', de quelle largeur avez-vous besoin pour décider :) –