2013-06-17 2 views
2

Привет Я хочу, чтобы переключить класс двухпозиционный, но только один может быть выбран, что-то похожее на вход радио:Toggling класс с JQuery

$('.text-selection').on('click', function() { 
    $(this).toggleClass('on-off'); 
}); 

Это мой fiddle. Благодарю.

+0

Почему вы не используете кнопки радио? – Blender

ответ

2

Просто удалите класс от братьев и сестер текущего элемента:

$('.text-selection').on('click', function() { 
    $(this).toggleClass('on-off').siblings().removeClass('on-off'); 
}); 

Демо: http://jsfiddle.net/MFQc9/4/

1

Вы должны удалить класс 'on-off' для других элементов с классом '.text-selection', когда любой элемент щелчок.

$('.text-selection').on('click', function() { 
    $(this).toggleClass('on-off'); 
    $('.text-selection').not(this).removeClass('on-off'); 
}); 

Check Demo

1

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

$('.text-selection').on('click', function() { 
    $('.text-selection').removeClass('on-off'); 
    $(this).toggleClass('on-off'); 
}); 
+0

Это приведет к удалению класса из объекта, на который был нажат, а не на ранее выбранном элементе. –

+0

Он удалит класс из всех них. После сброса выбранный будет переключен. – Skarlinski

+0

Он делает то же самое, что и ваше решение. – Skarlinski

2

Удалить класс от выбранного элемента, а затем добавить класс к на который было наложено:

$('.text-selection').on('click', function() { 
    $('.on-off').removeClass('on-off'); 
    $(this).toggleClass('on-off'); 
}); 

JSFiddle

1

Добавить $('.point-and-click').removeClass('on-off'); в качестве первого оператора в вашей функции

Смежные вопросы