我正在开发一种显示产品图像的方法,一旦点击图像,我希望它显示得更大。我通过Soap调用获取图像,如下所示:
$xml_params = "
<products>
<sku>" . $sku . "</sku>
</products>";
$soapVar = new SoapVar($xml_params, XSD_ANYXML, null, null, null);
$images = $this->soapClient->getProductImages(new SoapParam($soapVar, "getProductImages"));
return $images;
$sku
变量在调用时传递给上面的函数。
要显示图片我有以下html / php
<div class="art_images">
<div class="active">
</div>
<div class="small_images">
<?php
for($x=0; $x < count($images->image); $x++) {
echo '<img src="' . $images->image[$x]->url . '" class="small_image" id="' . $x . '"></img>';
}
?>
</div>
</div>
要切换哪个图片显示得更大,我有以下jQuery:
$(document).ready(function() {
$('.small_image').click(function() {
var myId = $(this).attr('id');
var myElement = $('.small_image').get(myId);
$('.active').empty();
$(myElement).clone().appendTo('.active');
});
});
这部分有效。它确实显示了被点击的图片,但是一旦我点击了另一张图片,它就会显示id为1的图片。因此,如果我点击ID为7的图片,它会显示ID为6的图片。如果我{ {1}}显示正确的id(所以在上面的例子中为7),但是当我console.log(myId)
时它显示错误的元素(所以id为6的元素)。知道这是怎么回事吗?