哪个jquery事件可以帮助我更好(onclick,悬停?)

时间:2015-12-09 09:16:29

标签: javascript jquery css events

我有一个困境

在我的网站中,我需要获取包含在模态中的范围的值 打开模态时,它的值会发生变化 当它不包含旧值
时 这是我网店中购物车的价值 当我点击添加产品到购物车时,模态被打开

我试过这段代码:

$('.ajax_add_to_cart_button').click(function()
{
        if($('#layer_cart').css('display') == 'block')
        { 
            var total_product = $('.ajax_block_products_total').text().replace('€', '').replace(',', '.');
            alert(total_product);
        }  
});

但是它包含旧值,因为当我点击添加到购物车时,模态没有被打开所以它被设置为显示无。

哪个事件可以更好地检查模态是否真的打开,因为它在打开之前需要几秒或几毫秒,因为有一个ajax请求来检查服务器上的购物车。

因此,当打开模态时,我不知道甚至可以更好地执行操作。

实际上我试着在添加到购物车按钮上进行onckicl,但此时它没有打开,所以它包含旧值。

非常感谢Anykind的帮助

1 个答案:

答案 0 :(得分:1)

首先,您需要显示layer_cart,这样您才能检查display:block css规则。

然后要更新total_product值,您需要一个存储值的变量,然后只需将旧值和新值相加即可得到总值。

请查看以下示例:

var total_product = 0;

$('.ajax_add_to_cart_button').on("click", function()
{

  $('#layer_cart').show();
  
  if($('#layer_cart').css('display') == 'block')
  { 
    total_product += parseInt($('.ajax_block_products_total').text().replace('€', '').replace(',', '.'));
  }  
  
  alert(total_product);
});
#layer_cart
{
  border: 1px solid red;
  height: 200px;
  width: 200px;
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="ajax_add_to_cart_button">Add to cart</div>

<ul id="layer_cart">

</ul>

<div class="ajax_block_products_total">€100</div>