有人可以帮助我修复代码,以便此脚本起作用吗?
这是我的html:
<div class="img-wrapper item">
<a href="/product/{{$product->id}}/{{$product->slug}}">
<a class="thumbnail" href="/product/{{$product->id}}/{{$product->slug}}" style="margin-bottom: 0px; border: none;">
<img class="media-object indexImg" src="{{$product->image}}">
</a>
</a>
<div class="tags">
@if($product->discount > 0)
<span class="label-tags"><span class="label label-danger">Išpardavimas</span></span>
@endif
<span class="label-tags"><span class="label label-info">Nauja</span></span>
</div>
<div class="option">
<button class="add-to-cart" type="button">Add to cart</button>
</div>
</div>
这是脚本:
$('.add-to-cart').on('click', function () {
var cart = $('.shopping-cart');
var imgtodrag = $(this).parent('.img-wrapper').find("img").eq(0);
if (imgtodrag) {
var imgclone = imgtodrag.clone()
.offset({
top: imgtodrag.offset().top,
left: imgtodrag.offset().left
})
.css({
'opacity': '0.5',
'position': 'absolute',
'height': '150px',
'width': '150px',
'z-index': '100'
})
.appendTo($('body'))
.animate({
'top': cart.offset().top + 10,
'left': cart.offset().left + 10,
'width': 75,
'height': 75
}, 1000, 'easeInOutExpo');
});
它与示例兼容,因此脚本很好。我只需要正确填写这一行:
var imgtodrag = $(this).parent('.img-wrapper').find("img").eq(0);
最佳答案
您的问题是因为.img-wrapper
不是直接父项,而是“祖父”。使用closest
,您将获得最接近的提升,在这种情况下,这是您想要的元素。尝试这个:
var imgtodrag = $(this).closest('.img-wrapper').find("img").first();
关于javascript - 无法读取未定义jQuery的属性“top”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44912562/