2014-09-25 4 views
-1

sampleКак сделать класс тумблер JavaScript упорного

var main = function() { 
    $('.article').click(function() { 
     if($(this).hasClass('current')) { 
       $(this).children('.description').toggle("slow"); 
     } 
     else { 
       $('.article').removeClass('current'); 
       $('.description').hide(); 
       $(this).addClass('current'); 
       $(this).children('.description').toggle("slow"); 
     }; 
}); 
} 
$(document).ready(main); 

Здравствуйте, я хотел бы знать, как научиться делать несколько вещей с моим маленьким на кнопку переключения списка:

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

Также
+ Как создать открытый/закрыть все коленно-рычажного
+ непрерывность визуальной информации, которая показывает список может быть расширен, и если он открыт или закрыт, который будет соответствовать этому стилю

+0

A toggle toggle - это то, для чего он предназначен. Для настойчивости вам нужен addClass/removeClass, а не toggle. –

+0

После этого привязка переключателя toggle к классу '.article', вероятно, не является тем, что вы хотите, если вы хотите, чтобы управление с большим количеством операций обрабатывалось по-разному. –

+0

Спасибо за вход! Я все еще не уверен, почему у меня есть отрицательные моменты для запроса законного вопроса ... –

ответ

1

Вы должны целевой .article .item и не .article

var main = function() { 
    $('.article .item').click(function() { 
     var article = $(this).closest('.article'); 
     if(article.hasClass('current')) { 
       article.children('.description').toggle("slow"); 
     } 
     else { 
       $('.article').removeClass('current'); 
       $('.description').hide(); 
       article.addClass('current'); 
       article.children('.description').toggle("slow"); 
     }; 
    }); 
} 

Демо на http://jsfiddle.net/kL70z8ky/5/

+0

Спасибо! Отличное простое решение, теперь я понимаю свою ошибку –

1

Если вы не хотите щелкнуть дочерний элемент, чтобы вызвать закрытие основного заголовка, вам необходимо остановить распространение события.

Пожалуйста, проверьте полный синтаксис/использования: How to stop event bubbling on checkbox click

Использование:

event.stopPropagation() 
+0

получил это, спасибо за хороший ресурс! –

1

Здесь более простой пример ch:

$('.article').click(function() { 
    $(".article").not($(this).addClass('current')).removeClass('current'); 
    $('.description').not($('.description',this).slideDown()).slideUp(); 
}); 
Смежные вопросы