Я пишу приложение jquery phonegap quiz и у меня есть несколько категорий, из которых пользователь может выбрать флажок.Соответствующие вопросы, относящиеся к этим категориям, затем возвращаются.Однако у меня есть два огромных оператора switch, чтобы изменить соответствующие переменные с 0 на 1, если установлен флажок для этой категории, и наоборот (эта информация используется для создания составного запроса базы данных).
Значениепеременная за флажком всегда равна 0 или 1, поэтому есть ли лучший способ сделать это?
Мой HTML-код:
<h2>Categories</h2>
<ul class="rounded">
<li>Cardiology<span class="toggle"><input type="checkbox" id="cardiology" /></span></li>
<li>Respiratory<span class="toggle"><input type="checkbox" id="respiratory" /></span></li>
<li>Gastrointestinal<span class="toggle"><input type="checkbox" id="gastrointestinal" /></span></li>
<li>Neurology<span class="toggle"><input type="checkbox" id="neurology" /></span></li>
</ul>
Мой Javascript имеет вид:
var toggle_cardiology = 0;
var toggle_respiratory = 0;
var toggle_gastrointestinal = 0;
var toggle_neurology = 0;
$(function() {
$('input[type="checkbox"]').bind('click',function() {
if($(this).is(':checked'))
{
switch (this.id)
{
case "cardiology":
toggle_cardiology = 1;
break;
case "respiratory":
toggle_respiratory = 1;
break;
case "gastrointestinal":
toggle_gastrointestinal = 1;
break;
case "neurology":
toggle_neurology = 1;
break;
и т. Д.(что громоздко с 10+ категориями и оператором else с переключателем для их возврата обратно)
Я думаю о чем-то вроде конкатенации тега HTML id с префиксом toggle_ - в псевдокоде:
if (toggle_ + this.id == 1){
toggle_ + this.id == 0}
if (toggle_ + this.id == 0){
toggle_ + this.id == 1}
Спасибо, Ник.