2013-11-15 2 views
0

У меня есть следующий HTML:toggleClass не вынимая первого класса

<div class="profileRowHeader"> 
    <i class="glyphicon glyphicon-folder-close" id="folderIcon"></i> 
</div> 

.profileRowHeader При щелчке я хочу, чтобы удалить класс glyphicon-folder-close и добавить класс glyphicon-folder-open к #folderIcon

Это то, что я пытаюсь:

$('.profileRowHeader').click(function() { 
    $(this).find("#folderIcon").toggleClass('glyphicon-folder-open','glyphicon-folder-close'); 
}); 

Но все это не просто добавить glyphicon-folder-open класс, а не удалить glyphicon-folder-close, как показано ниже:

<i class="glyphicon glyphicon-folder-close glyphicon-folder-open" id="folderIcon"></i> 

Ожидается ли такое поведение? Мне действительно нужно, чтобы удалить его, если это возможно

+1

сделать как это '->«glyphicon-папка -open glyphicon-folder-close'' поставить оба в одинаковых кавычках без ',' разделенных. – Jai

ответ

4

Попробуйте как

$('.profileRowHeader').click(function() { 
    $(this).find("#folderIcon").toggleClass('glyphicon-folder-open glyphicon-folder-close'); 
}); 

Для двух классов вам не нужен какой-либо Seperator ratherthan пространства .Увидьте это link

+0

спасибо вид сэр. – Boldbayar

3

В вашем случае вы должны использовать один строковый аргумент, с классами, разделенных пробелом:

$('#folderIcon', this).toggleClass('glyphicon-folder-open glyphicon-folder-close'); 
5

Вы перечисляете классы для переключения в один, разделенных пробелами строки :

$(this).find("#folderIcon").toggleClass('glyphicon-folder-open glyphicon-folder-close'); 
// Change is here --------------------------------------------^ 

Второй (необязательный) аргумент toggleClass не другой класс для переключения, это флаг: Если это truthy, то toggleClass действует как addClass. Если это ложно, toggleClass действует как removeClass. Если это отсутствует, toggleClasstoggles классы (удаляет их, если они есть, добавляет их, если они отсутствуют, по классу).

2

toggleClass принимает один строковый параметр, каждый из которых переключается, разделяя пробел. Попробуйте это:

$('.profileRowHeader').click(function() { 
    $(this).find("#folderIcon").toggleClass('glyphicon-folder-open glyphicon-folder-close'); 
}); 
Смежные вопросы