提问人:user19014207 提问时间:12/2/2022 最后编辑:user19014207 更新时间:12/2/2022 访问量:59
jquery ON 多个事件,但需要触发一个而不是所有事件
jquery ON multiple event, but need trigger one not all of them
问:
在jQuery中,我使用这个例子对输入做了一些事情:
var i=0;
$("#inputTest").on("focus click touchstart",function(e){
++i;$(this).val(i);
console.log(e.type);
});
结果始终是触发器,我得到了两次控制台(或任何其他操作)基于焦点,首先单击第二个,我需要其中一个,我想防止触发其他操作。所以你能帮我吗?
在此示例中,我只想触发焦点或单击或...,只是一次而不是多次
请不要说使用jQuery ONE,因为一个只触发了一次,其他时间就关闭了,我希望每次用户点击或专注于输入时,做一些事情,但现在每次焦点/点击时,jQuery都会触发两次
我使用 if(e.type===“click”){}else if(e.type=“focus”){} 但仍然同时触发了两者,注意:我的输入有这个问题
编辑:
感谢您的评论,看起来不适合我想要的东西,例如@freedomn-m谢谢,但在这种情况下仍然多次调用事件处理程序。debounce
setTimeout()
事件是示例,我有多个这样的代码,其中一些有多个自定义事件,我搜索并提出这个问题以找到一次触发其中一个的好方法,如果我想进行脏编码,我可以将全局变量和设置值放在第一个触发并防止其他事件,并通过 setTimeout 释放它,就像 @freedomn-m 的例子一样,但这不是一个好方法。focus click touchstart
对于某些特殊元素,我有 10 个事件,包括 、 、 、 和自定义事件,如 、 和 ...因此,以正常方式,每次我单击该输入时,我都会收到事件和其他事件,但我需要一种很好的方法来获取拳头触发事件并删除其他事件click
focus
touchstart
touchmove
_click.Name
run.Name
focus
click
例如,如果我有 & 和用户使用的 Tab 键,我想要获取焦点事件而不是 keyup,但现在我得到了这两个事件focus
keyup
答: 暂无答案
评论
touchstart
click
debounce
throttle