Bootstrap Popover更改数量

时间:2014-01-08 04:43:48

标签: javascript jquery html css3 twitter-bootstrap

我有购物车商品的列表视图。我希望允许用户在悬停时增加/减少数量,或者单击弹出框中的每个项目。我编写了下面的代码,但是当我尝试在弹出窗口内的+或 - 符号内单击时,popover会隐藏。 在这方面的任何帮助,以及指向自定义CSS,使其无需硬编码通用的指针将非常感谢和有帮助。 使用bootstrap-3.0.3和jquery-1.9.1

$(document).on( 'click', '.cart-side-view-item-list', function(e) {
    var item_id=$(this).attr('id');
    items_data = window.items_data;
    items_list = items_data.items_list;
    var div_content;
    for(var itm_id in items_list)
    {
        temp_id = "cart-side-view-item-" + itm_id 
        if (temp_id === item_id)
        {
            div_content = '<div class="sp-quantity"> \
                          ' + items_list[itm_id].item  + ' \
                            <div class="sp-plus fff"> \
                            <a class="ddd" href="#" data-multi="1"> \
                            <i class="glyphicon glyphicon-plus-sign"></i></a></div> \
                            <div class="sp-input"> \
                                <input type="text" class="item-quantity" value="'+ items_list[itm_id].quantity  +'" /> \
                            </div> \
                            <div class="sp-minus fff"> \
                            <a class="ddd" href="#" data-multi="-1"> \
                            <i class="glyphicon glyphicon-minus-sign"></i></a></div> \
                           </div>';
        }

    }

    editQuantity = function() {
        var $button = $(this);
    var $input = $button.closest('.sp-quantity').find("input.item-quantity");
    $input.val(function(i, value) {
        return +value + (1 * +$button.data('multi'));
    });

    };

    var $btn2 = $('#'+item_id);

    $btn2.popover({trigger: 'mannual', 'placement':'left', content: div_content, html:true})
        .on( 'click', (function (e)  {
            var pop_data = $(this).data('popover').tip();
            $(pop_data).find('.sp-quantity').on('click', editQuantity);
        }))
        .popover('show');
});

2 个答案:

答案 0 :(得分:0)

您可以通过停止其点击事件传播来阻止弹出窗口关闭

 $btn2.popover({
     trigger: 'mannual',
     'placement': 'left',
     content: div_content,
     html: true
 })
     .on('click', (function (e) {
         var pop_data = $(this).data('popover').tip();
         $(pop_data).find('.sp-quantity').on('click', editQuantity);

         e.preventDefault();
         e.stopPropagation();
         return false;

     }))
     .popover('show');

答案 1 :(得分:0)

代码中出现了一个错误的错误,导致工作流程的功能与预期不同。对不起。