周期问题

时间:2011-06-21 12:10:16

标签: javascript jquery cycle

我有一个循环,它只适用于我的最后一个元素。它适用于每个元素。

for (var z=1; z<$('.page').length;z++){ 

$('#arrowUp_'+z).click(function(){
        $('#thumbsContainer_'+z).animate({top: '-='+93+'px'}, {duration: 1000});
        cont++;
        arrowThumbs();
    });

    $('#arrowDown_'+z).click(function(){
        $('#thumbsContainer_'+z).animate({top: '+='+93+'px'}, {duration: 1000});
        cont--;
        arrowThumbs();
    });
}

如果我将z替换为一个数字,我可以使其适用于该情况。但是我不想在N次重复同样的过程。所以我认为为...制作一个循环是个好主意

任何人都可以解释如何做到这一点? 感谢

1 个答案:

答案 0 :(得分:0)

为什么使用ID?为什么你不能像这样在每个元素上添加一个类

<div id="arrowUp_1" class="arrowUp">

</div>

$('.arrowUp').click(function(){...});

[你应该知道的事情]

' - ='+ 93 +'px'它没有意义你可以' - = 93px'仍然是相同的东西,因为它将被视为一个字符串而不是一个数字,就像说var h3ll0;不是一个字符串:)

之前没有预定义的cont ++,并且你的整体不起作用,因为animate()是错误的... 点击链接,以便您可以获得一些帮助http://api.jquery.com/animate/

你没有把{duration:1000}只放1000,因为它本身就是一个属性,并且需要一个[毫秒不是json对象的数字] ......

<强>更新 检查此代码...

http://jsfiddle.net/JFRAb/3/

============================================== < / p>

<强> CSS:

span {background: red;position: absolute; left: 0;}

<强> JS

$(function() {
    $('div').click(function() {
        $('p').append($(this).text());
        //alert('text');
        var i = $(this).index($('ul div'));
        console.log($(this));
        $('ul span').eq(i).animate({
            left: '50%'
        }, 1000);
    });
});

HTML

<p>Test...</p>
<hr />
<ul>
    <div>Click 1</div>
    <div>Click 2</div>
    <div id="b">Click 3</div>
    <div>Click 4</div>
</ul>
<br /><br /><br /><br />
<ul>
    <span>Im thumb 1</span>
    <span>Im thumb 2</span>
    <span>Im thumb 3</span>
    <span>Im thumb 4</span>
</ul>

这是元素选择的一个不好的例子:)但它更好的解决方案:)我应该想:)