I found this solution that does not convince me a lot but...it
works :)

function addMessageClickHandlers(){
        $('#messages h3 + div').hide();
        $('#messages h3').click(function(event){
                if(!$(event.target).is(":input"))
                {
                        var $nextDiv = $(this).next();
                        var $visibleSiblings =
$nextDiv.siblings('div:visible:not(.all_msg_tools)');
                        if ($visibleSiblings.length)
                                $visibleSiblings.slideUp('fast', function()
{$nextDiv.slideToggle('fast');});
                        else
                                $nextDiv.slideToggle('fast');
                        return false;
                }
        });
}

On 29 oct, 16:11, "[EMAIL PROTECTED]"
<[EMAIL PROTECTED]> wrote:
> Hello,
>
> Here is the DOM structure I use :
>                 <h3 >
>                         <label>
>                                 <input type="checkbox" name="selectedMsg[]" 
> value="15"  />
>                         </label>
>                         <a href="read-message-15.html" title="">Re : Title</a>
>                 </h3>
>                 <div>
>                         <p>my text</p>
>                 </div>
>
> And I would like to use a sort of accordion effect once I click the h3
> node and avoid accordion effect if the click is on the checkbox.
>
> Impossible to do and any advice is welcome.
>
> Here is the js code I used, the click on the checkbox is ok but the
> click on the h3 follows the "href" link.
>
> function addMessageClickHandlers(){
>         $('#messages h3 + div').hide();
>         $('#messages h3').filter(":checkbox").click(function(){
>                 var $nextDiv = $(this).next();
>                 var $visibleSiblings =
> $nextDiv.siblings('div:visible:not(.all_msg_tools)');
>                 if ($visibleSiblings.length)
>                         $visibleSiblings.slideUp('fast', function()
> {$nextDiv.slideToggle('fast');});
>                 else
>                         $nextDiv.slideToggle('fast');
>                 return false;
>         });}
>
> $(document).ready(addMessageClickHandlers);
>
> Thanx a lot

Reply via email to