为什么我要停止下一个当前元素?

时间:2013-12-19 16:38:34

标签: jquery

当我点击.current li-element中的span时,我正在增加我的当前 1和切换类,但是当它是第二个元素时我崩溃了,是什么错?

<div id="test">
     <ul id="n">
         <li><div class="q"><span>1</span></div></li>
         <li><div class="q"><span>2</span></div></li>
         <li><div class="q"><span>3</span></div></li>
         <li><div class="q"><span>4</span></div></li>
    </ul>
</div>

jQuery

var current = 0;

$('#n li:eq('+current+')').addClass('current');

$('#n li.current').on('click','span',function(){

    $('#n li').removeClass('current');
    current++;    
    $('#n li:eq('+current+')').addClass('current');

});

1 个答案:

答案 0 :(得分:2)

您的选择器li.current span是动态的,因为目标类current会在元素之间发生变化。因此,您需要使用事件委派来定位具有所述属性的动态元素

应该是

$('#n').on('click', 'li.current span', function () {
    $('#n li').removeClass('current');
    current++;
    $('#n li:eq(' + current + ')').addClass('current');
});

演示:Fiddle