重新定位jQuery警报

时间:2013-09-24 14:56:53

标签: jquery position alert

想知道如何在下面的表单中重新定位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>

1 个答案:

答案 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更改为您想要的任何内容。 。