想知道如何在下面的表单中重新定位jQuery警报。目前它出现在浏览器的顶部,就在地址栏下方。如果可能的话,让它更接近屏幕的中心会更好。我对jQuery缺乏经验,所以非常感谢你的帮助。
提前谢谢! 苏珊
{% if template contains 'product' and product.available %}
<script>
jQuery('form[action^="/cart/add"]').submit(function() {
var product = {{ product | json }},
cannotAddThisQuantity = false,
message = 'So Sorry! You must have gotten the last one! We do not have any more %t in stock.',
selectedVariantId = jQuery(this).find('[name="id"]').val(),
quantityToAdd = parseInt(jQuery(this).find('[name="quantity"]').val(), 10) || 1,
quantityInCart = 0,
title = '';
inventoryLimited = false,
inventory = 0;
for (var i=0; i<product.variants.length; i++) {
if (product.variants[i].id == selectedVariantId) {
var variant = product.variants[i];;
title = product.title;
if (product.variants.length > 1) title += ' - ' + variant.title;
if (variant.inventory_management && variant.inventory_policy == 'deny') {
inventoryLimited = true;
inventory = product.variants[i].inventory_quantity;
}
}
}
if (inventoryLimited) {
{% if cart.item_count > 0 %}
var cart = {{ cart | json }};
for (var i=0; i<cart.items.length; i++) {
if (cart.items[i].id == selectedVariantId) {
quantityInCart = cart.items[i].quantity;
}
}
{% endif %}
if ((inventory - quantityInCart) < quantityToAdd) {
message = message.replace('%q', quantityToAdd).replace('%t', title);
if (quantityToAdd > 1) message.replace('item', 'items');
cannotAddThisQuantity = true;
}
}
if (cannotAddThisQuantity) {
alert(message);
return false;
}
else {
return true;
}
});
</script>
答案 0 :(得分:4)
不使用alert(),而是将“消息”放入自定义div中,然后您可以将其放置在任何您想要的位置
的jQuery
if (cannotAddThisQuantity) {
$('.myAlertDiv').html(message).fadeIn();
return false;
}
CSS
.myAlertDiv{
position: absolute;
top: 100px;
left: 100px;
display: none;
*etc...*
}
显然将CSS更改为您想要的任何内容。 。