2014-02-22 135 views
1

我创建了一个div的循环,页面上有一些单选按钮单选按钮绑定不起作用

每个单选按钮对应一个div。所以如果循环处于位置2,则选择无线电2等等。反之亦然,如果选择了收音机3,则选择div 3,就像是双向绑定。

function anim_loop(index) { 
    if(timer){ 
     $elements.filter('.current').stop(true, true).hide().removeClass('current'); 
     clearTimeout(timer) 
    } 
    $radios.eq(index).prop('checked', true); 
    $elements.eq(index).stop(true, true).addClass('current').fadeIn(1000, function() { 
     var $self = $(this); 
     timer = setTimeout(function() { 
      $self.fadeOut(1000).removeClass('current'); 
      anim_loop((index + 1) % $elements.length); 
      timer = undefined; 
     }, 3000); 
    }); 
} 

我在页面上也有一个左右按钮,它也可以控制循环。

两块我不能够解决特定的错误

  1. 当循环到达第4电台,我一定要点击右边的按钮两次使其移动到下一个元素,在我们的例子中是第一个广播。不知道为什么

  2. 你必须很快在你的最后复制这个错误。正当循环从第3个移动到第4个并且第4个开始选择时,立即单击2.发生一件奇怪的事情!收音机下方的文字重叠,循环而不是从2到3,现在回到1.不知道为什么会发生这种情况。任何人都可以帮我

http://jsfiddle.net/69nk3/

回答

0

这是因为你送4作为指标。
在anim_loop函数的开始处添加一个检查。

function anim_loop(index) { 
    if(index == $elements.length){ 
     index = 0; 
    } 

http://jsfiddle.net/69nk3/3/

+0

感谢,错误2依然存在:( – Philtho

+0

那是因为你那么有2个在同一时间的“当前”类,你可以通过看它在Firebug看到这一点。不知道正是你想要达到的目标,很难修复你的代码 – 2pha