如何连续仅附加一次事件处理程序

时间:2019-08-17 12:05:04

标签: javascript jquery

我有一个问题,希望在将指标放置到输入中多次触发事件触发时解决,而我仅想触发一次触发一次,谢谢您与我的合作,这就是代码< / p>

<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);
});

注意:每当我单击输入框时,我希望消息警报出现一次,而再次单击时,消息警报也会出现一次。

2 个答案:

答案 0 :(得分:0)

const params={ TableName: TABLE_CHAT, Key: { chatId: chatId }, UpdateExpression: "SET isQuestion= :isQuestion, updatedAt= :updatedAt", ExpressionAttributeValues: { ":isQuestion": false, ":updatedAt": Date.now() }, ReturnValues: "ALL_NEW" }; const result= await dynamoDbLib.call("update", params); 替换为focus,每次只会触发一次。

click

Bdw如果只希望函数每次运行一次,则可以跳过off方法。只需使用.on()也可以完成这项工作,这是将函数绑定到输入的正确方法。

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

答案 1 :(得分:0)

使用点击代替焦点:

    $(document).on('click', '#price-exposed-once', function(){ 
        alert(1);
    )};
相关问题