2014-01-08 2 views
0

У меня есть список товаров. Я хочу разрешить пользователю увеличивать/уменьшать количество при наведении или нажимать на каждый элемент внутри popover. Я написал код ниже, но popover скрывается, когда я пытаюсь щелкнуть внутри знака + или - внутри popover. Любая помощь в этом отношении, а также указатели на настройку CSS, что делает его общим без hardcoding, будет высоко оценен и полезен. Использование самозагрузки-3.0.3 и JQuery-1.9.1Bootstrap Popover Изменить количество

$(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'); 
}); 
+0

Ошибка орфографии «mannual» вызвала все хаос на моей кодовой базе за 4 часа :(. – Raja

ответ

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'); 
+0

Это не сработало. Я пробовал делать e.preventDefault() и e.stopPropogation(). – Raja

0

Был seplling ошибка в коде, который вызвал рабочие процессы работают иначе, чем ожидалось. Прошу прещения за это.

Смежные вопросы