У меня есть обертка div и 3 элемента ввода (ввод текста и кнопки + количества) внутри него. Структура HTML выглядит следующим образом:JQuery, как держать фокус на дочерних элементах внутри обертки div?
<div id="total_text" style="display:none;" class="total_price_txt">Total price:
<div id="total_price" class="total_price">$0.00</div>
</div>
<div id="wrapper">
<input id="plus"></input>
<input id="text"></input>
<input id="minus"></input>
</div>
И JQuery код slideOut общую сумму на фокус ввода:
$('#wrapper').on('focusin',function(e){
$("#product_wrapper").addClass("jquery_product");
$('#total_text').slideDown(400);
});
$('#wrapper').on('focusout',function(e){
$("#product_wrapper").removeClass("jquery_product");
$('#total_text').slideUp(400);
});
$('#amount_input').on('change paste keyup',function(e){
var filterPrice=$('#product_price').text().replace(/[^0-9.]+/gi, '');
var price=parseFloat(filterPrice, 10);
var inputAmount = $('#amount_input').val();
var total = (inputAmount*price).toFixed(2);
$('#total_price').html("<div class='total_price'>$" +total+ "</div>");
});
Это своего рода работает, но проблема в том, что, когда я вхожу ввод в текстовое поле и хотите изменить его с помощью любого из + - боксов, которые он скользит вверх и вниз. И это происходит каждый раз, когда я переключаюсь между любыми этими входами. Я бы хотел, чтобы он сосредоточился на полной обертке div, независимо от того, какой из этих входов находится в фокусе, пока сама оболочка не находится в фокусе.
Не могли бы вы добавить в свой HTML-фрагмент '# product_wrapper' и' # total_text', чтобы лучше показать, чем вы являетесь? – ryachza
Я обновил HTML и javascript с более подробной информацией. #product_wrapper не важен, он лишь добавляет некоторый запас для стилизации. –