如何监听多个事件,例如更改和输入,但一次仅触发一个事件。
示例:
- 输入时:触发输入事件而不进行更改
- 更改时:无需输入即可触发更改事件
使用此代码来监听事件,但在输入时会触发两次。
演示:
https://jsfiddle.net/h6sny738/2/
$(document).on("change input", '.test', function(event) {
console.log("test");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<input class="test">
最佳答案
为您的函数命名并为不同的目标附加不同的监听器:
var myFunc = function(event) {
console.log('test', event.type, event.target.tagName);
};
$(document)
.on('change', 'select.test', myFunc)
.on('input', 'input.test', myFunc);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<input class="test">
<select class="test">
<option>1</option>
<option>2</option>
</select>
关于JQuery 监听多个事件,但只触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58215318/