У меня есть проблема, которую я надеюсь решить, когда я помещаю индикатор на вход, запускающий событие более одного раза, где я хочу запускать событие только один раз, непрерывно, спасибо за сотрудничество со мной, и это код

<label for="price-exposed-min">
    <div class="zsg-content_collapsed zsg-form-field">
        <input type="tel" id="price-exposed-min" aria-labelledby="price-exposed-min" value="" placeholder="Min" autocomplete="off" tabindex="10">
        <p class="zsg-form-error-text">Enter a valid number</p>
    </div>
    <ul id="min-options" class="filter-options" style="display: block;">
        <li tabindex="11">$0+</li>
        <li tabindex="12">$100,000+</li>
        <li tabindex="13">$200,000+</li>
        <li tabindex="14">$300,000+</li>
        <li tabindex="15">$400,000+</li>
        <li tabindex="16">$500,000+</li>
        <li tabindex="17">$600,000+</li>
        <li tabindex="18">$700,000+</li>
        <li tabindex="19">$800,000+</li>
        <li tabindex="20">$900,000+</li>
    </ul>
</label>
$(document).off('focus', '#price-exposed-min').on('focus', '#price-exposed-min', function() {
            alert(1);
});

Примечание: всякий раз, когда я нажимаю на поле ввода, я хочу, чтобы сообщение появлялось один раз, а когда я нажимаю снова, оно также появляется один раз.

0
usamnet usamnet 17 Авг 2019 в 15:05

2 ответа

Лучший ответ

Замените focus на click, и он будет срабатывать только один раз каждый раз.

$(document).off('focus', '#price-exposed-min').on('click', '#price-exposed- 
min', function() {
        alert(1);
});

Кстати, если вы просто хотите, чтобы функция запускалась один раз каждый раз, вы можете пропустить метод off. Простое использование .on () также сделает работу, это правильный способ привязать функцию к вводу.

$(document).on('click', '#price-exposed-min', function() {
        alert(1);
});
0
sid 17 Авг 2019 в 12:24

Используйте щелчок вместо фокуса:

    $(document).on('click', '#price-exposed-once', function(){ 
        alert(1);
    )};
0
kmgt 17 Авг 2019 в 12:26