1

これは私が持っているもので、うまくいきますが、もっと簡単になるのでしょうか?

$('.item1').click(function(){
    $('.otheritem').animtate('left':'0');
});
$('.item2').click(function(){
    $('.otheritem').animtate('left':'100');
});
$('.item3').click(function(){
    $('.otheritem').animtate('left':'200');
});
// etc etc etc

php foreach を使用していくつかの項目を生成するファイルがあります。

foreach($images as $image)
{
    $i++;
    echo "<a class='item$i item' href='#'>$i</a>";
}

したがって、画像が多いほど項目が多いため、php によって生成された項目の 1 つをクリックすると、.otheritem の位置が決定されます。

4

3 に答える 3

2

要素のデータプロパティ内に変化する値を埋め込み、すべての要素に同じセレクターを与えるだけです-

$animLeft = $i * 100;
echo "<a class='item' href='#' data-animleft='{$animLeft}' >$i</a>";

これで、jQuery は同じ名前ですべての要素にアクセスし、アニメーションの値を抽出できます。

$('.item').on('click',function(){
  var animateValue = $(this).data('animleft');
  $('.otheritem').animtate('left':animateValue);
});

参考文献 -

于 2013-03-28T18:33:20.713 に答える
2

すべての項目が固定幅の場合、リスト内の位置に基づいて位置を計算できます。

例えば

$('.buttons').click( function() {
    $('.otheritem').animate('left', $(this).index() * 100);
});
于 2013-03-28T18:33:06.840 に答える
1

このようなもの?

$('.item').each(function(i) {
    $(this).click(function() {
        $('.otheritem').animate('left', i * 100);
    });
});
于 2013-03-28T18:33:13.213 に答える