Помогите переделать работу trigger(“change”)

116
02 августа 2019, 08:50

Есть input для указания количества покупаемого товара и рядом "стрелки" вверх/вниз для изменения его значения:

<div class="product_count">
    <input type="text" value="1">
    <div class="product_count_top"></div>
    <div class="product_count_bottom"></div>
</div>

После клика по стрелке срабатывает trigger("change") c задержкой в 1 секунду.

$(".product_count_top").click(function() {
    var input = $(this).prevAll('input');
    var inputVal = Number.parseInt(input.val());
    if (inputVal>0) {
        var timeout;
        inputVal++;
        input.val(inputVal);
        timeout = setTimeout(function () {
            input.trigger("change");
        }, 1000);
    } else {
        input.val("1");
    }
});

Код работает правильно, но не так как я хочу. Помогите его модифицировать, чтобы при множестве кликах (в течение секунды), триггер срабатывал только 1 раз - через секунду после последнего клика.

Answer 1

Вот что вам нужно:

var timeout = null;
$(".product_count_top").click(function() {
    var input = $(this).prevAll('input');
    var inputVal = Number.parseInt(input.val());
    if (inputVal>0) {
        inputVal++;
        input.val(inputVal);
        clearTimeout(timeout);
        timeout = setTimeout(function () {
            input.trigger("change");
        }, 1000);
    } else {
        input.val("1");
    }
});
READ ALSO
Пропадает связь между объектами

Пропадает связь между объектами

Имеется массив inv класса ItemInInv, в другом классе InstantiateItem есть свойство item, которое равно ItemInInv item = inv[n]Если изменить любое свойство в объекте...

123
Функция которая объединяет три строки в одну

Функция которая объединяет три строки в одну

Я написал функцию, которая объединяет три строки в одну, но я только учу C# поэтому ничего не вышлоПодскажите, почему мой код не работает:

122
Оптимизации сортировки массива

Оптимизации сортировки массива

У меня есть два цикла "for"Когда записей ~100 они работают быстро, но когда записей больше 100000 скорость обработки может быть и час

209
Удаление связанных данных Entity Framework

Удаление связанных данных Entity Framework

Есть связанные классы:

150