【发布时间】:2012-08-14 10:18:00
【问题描述】:
我有一个相当重复的 switch case 语句,为了学习最简单的做事方式,我想转向 SO,看看是否有更优雅的解决方案:
switch(id)
{
case 'ib-02a':
if(direction == 'left')
setHash('ib-02b');
break;
case 'ib-02b':
if(direction == 'right')
setHash('ib-02a');
if(direction == 'left')
setHash('ib-02c');
break;
case 'ib-02c':
if(direction == 'right')
setHash('ib-02b');
if(direction == 'left')
setHash('ib-02d');
break;
case 'ib-02d':
if(direction == 'right')
setHash('ib-02c');
break;
case 'ib-03a':
if(direction == 'left')
setHash('ib-03b');
break;
case 'ib-03b':
if(direction == 'right')
setHash('ib-03a');
if(direction == 'left')
setHash('ib-03c');
break;
case 'ib-03c':
if(direction == 'right')
setHash('ib-03b');
if(direction == 'left')
setHash('ib-03d');
break;
case 'ib-03d':
if(direction == 'right')
setHash('ib-03c');
break;
case 'pb-05a':
if(direction == 'left')
setHash('pb-05b');
break;
case 'pb-05b':
if(direction == 'right')
setHash('pb-05a');
if(direction == 'left')
setHash('pb-05c');
break;
case 'pb-05c':
if(direction == 'right')
setHash('pb-05b');
if(direction == 'left')
setHash('pb-05d');
break;
case 'pb-05d':
if(direction == 'right')
setHash('pb-05c');
break;
}
我正在读取滑动事件,如果我正在滑动的元素的 ID 与 ib-02*、ib-03* 或 pb-05* 匹配,我正在为适当的 ID 调用 setHash 函数。如果我在 *a 上滑动,我向左滑动到 *b。如果我在 *b 上滑动,我向右滑动到 *a 并向左滑动到 *c。以此类推,总是在 *a 和 *d 之间。
必须有一种重复性较低的方法来做到这一点,但我不确定最好的方法到底是什么。
【问题讨论】:
标签: javascript jquery switch-statement swipe