这就是我所拥有的,并且有效,但是我想知道是否会更容易?

$('.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生成的项目之一,它将确定.otheritem的位置

最佳答案

您可以将更改后的值嵌入到元素的data属性中,并为所有元素赋予相同的选择器-

$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);
});


参考-


$.data()

09-28 04:54