слайд слайд спад - PullRequest
       21

слайд слайд спад

0 голосов
/ 03 апреля 2012

У меня есть маленький вопрос, касающийся слайдов и слайдов, проблема на самом деле в слайд-апе, когда я нажимаю на ссылку, контент скользит вниз, и это нормально, но когда я пытаюсь закрыть этот слайд, он слайд-ап и слайд-апавтоматически, я имею в виду, что он не может быть закрыт после открытия :) в любом случае, надеюсь, все будет ясно после того, как я покажу вам код:

    $items = $('#accordion a.item');
    $items.click(function () {
        $items.removeClass('selected');
        $(this).addClass('selected');
        $('#accordion li').children('ul').slideUp('slow'); 
        $(this).siblings('ul').slideDown('slow');  
        return false;
    });

и html:

<ul id="accordion">
    <li>
        <a href="#" class="item">BANKS</a>
        <ul>BLA BLA BLA</ul>
    </li>
    <li>
        <a href="#" class="item">PETROL</a>
        <ul>BLA BLA BLA</ul>
    </li>
</ul>

все, что я хочу, это сделать его закрытым.

и спасибо вам всем за помощь и немного времени, я действительно ценю это!

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012

Hiya Здесь вы идете демо : http://jsfiddle.net/uetGd/29/

Исправлена ​​другая проблема, вы можете улучшить ее больше: http://jsfiddle.net/uetGd/39/

HTML

<ul id="accordion">
    <li>
        <a href="#" class="item">BANKS</a>
        <ul>BLA BLA BLA</ul>
    </li>
    <li>
        <a href="#" class="item">PETROL</a>
        <ul>BLA BLA BLA</ul>
    </li>
</ul>​

Код JQuery

$('.item')
    .ready(accordionSlideUpDown) // on ready
    .click(accordionSlideUpDown); // on click


function accordionSlideUpDown(){
    $('#accordion').children().children('ul').slideUp();
    $(this).next().slideToggle();   
}
​

ИЛИ Редактировать

$('#accordion').children().children('ul').slideToggle();
var previous = "";

$('.item')
    .ready(accordionSlideUpDown) // on ready
    .click(accordionSlideUpDown); // on click


function accordionSlideUpDown(){
    var newval = $(this).text();

    $('#accordion').children().children('ul').slideUp();

    if (newval != previous){
         $(this).next().slideToggle('slow');
    }
      previous = $(this).text();                       
}

​
2 голосов
/ 03 апреля 2012

У вас есть слайд-слайд после слайда

    $('#accordion li').children('ul').slideUp('slow'); 
    $(this).siblings('ul').slideDown('slow');  

, когда селекторы для обоих одинаковы, он будет скользить вверх и вниз.

Вы можете попытаться пропустить слайд-слайд для щелкнувшегоэлемент, если он был открыт при нажатии

РЕДАКТИРОВАТЬ

Код JavaScript должен быть слегка изменен

<script type="text/javascript" charset="utf-8">
    $(document).ready(function () {
        $items = $('#accordion a.item');
        $('#accordion li').children('ul').slideUp('slow'); 
        $items.click(function () {
            $('#accordion li').children('ul').slideUp('slow'); 
            if ($(this)[0] != $('.selected')[0]) {
               $(this).siblings('ul').slideDown('slow');  
               $items.removeClass('selected');
               $(this).addClass('selected');
            } else {
               $items.removeClass('selected');
            }
            return false;
        });     
    }); 
</script>
...