以下のフォームで 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>