Показать / скрыть несколько классов div независимо на основе значения флажка - PullRequest
1 голос
/ 23 ноября 2011

Я видел несколько вопросов, похожих на мой, но, похоже, не могу найти решение.

Я работаю над календарем с JavaScript, работающим на FullCalendar с использованием URL-адресов Google XML.Моя цель - показать / скрыть события в календаре на основе значения флажка, соответствующего событиям в календаре.Такие события сгруппированы по типу (они находятся в отдельных календарях Google с отдельными URL-адресами XML, но отображаются на одном и том же календаре на веб-странице) и имеют разные имена классов div.У меня всего 11 различных классов, и мне нужен способ переключать их видимость независимо от других классов на основе значения флажка.

Я нахожусь в процессе изучения JQuery / JavaScript и, следовательно, большая часть из них по-прежнему греческаямне.Я нашел решение, которое работает для одного класса, но зависит от значений всех других флажков, если присутствуют другие флажки.Это тот JS, который я сейчас использую:

<script type="text/javascript">
function doInputs(obj){
 var checkbox = $("input[type=checkbox]:checked"); 
 var i =0, box;
 $('.className').fadeOut('fast');
     while(box = checkbox[i++]){
     if(!box.checked)continue;
     $('.className').fadeIn('fast');
     break;
     }
 }
</script>

и соответствующая наценка:

<input type="checkbox" checked="checked" name="className" onclick="doInputs(this)"> Class Name Text

Это работает довольно хорошо;однако я не могу понять, как заставить его работать с несколькими классами div.Есть предложения?

Ответы [ 2 ]

1 голос
/ 26 ноября 2011

Я нашел другое решение, которое работает намного лучше и использует существующие действия FullCalendar JS. Вместо того чтобы использовать классы div и их имена классов в качестве определяющего фактора их состояния отображения, я использовал действия RemoveEventSource и addEventSource в FullCalendar, чтобы показать / скрыть каждый из 11 переключаемых календарей.

Оригинальный JS здесь . Еще немного покопаться, и я бы нашел это гораздо раньше.

Спасибо тем, кто прокомментировал и ответил.

0 голосов
/ 23 ноября 2011

Вы можете передать имя класса div вместе с функцией JS, например,

doInputs(this,'classname')

, и в соответствии с этим именем класса вы можете переключить этот класс

EG

function doInputs(obj,cc){ 
......
$('.' + cc).fadeOut('fast'); 
......
}
...