jQuery侦听多个事件,但仅触发一次

时间:2019-10-03 08:39:39

标签: jquery events

如何侦听更改和输入之类的多个事件,但一次仅触发一个事件。

示例:

  • 输入时:触发输入事件而未更改
  • 更改时:无输入的火灾更改事件

使用此代码侦听事件,但在输入时会触发两次。

演示:

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">

1 个答案:

答案 0 :(得分:2)

命名您的函数,并为不同的侦听器分配不同的目标:

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>

相关问题