jQuery - 你可以有多个.on附加到特定元素

aSy*_*oad 1 jquery

我可以按照以下方式拥有多个实例,或者我应该拥有多个实例,但是确定触发事件和处理的内容是什么?

$('.someClass')
    .on("keydown","[id*=txtAccountID],[id*=txtLinkedToAccountID]...
$('.someClass')
    .on("keydown","[id*=txtDateDB],[id*=txtDateHuman]...
Run Code Online (Sandbox Code Playgroud)

要么

$('.someClass')
    .on("keydown","[id*=txtAccountID],[id*=txtLinkedToAccountID],[id*=txtDateDB],[id*=txtDateHuman]...

resID = $(this).prop("id");

if (resID = "XYZ" ) {
    //do account related stuff
else if (resID = "ABC"  ) {
    //do date related stuff
}
Run Code Online (Sandbox Code Playgroud)

Sag*_*b.g 5

是的你可以.根据DOCS:

如果注册了多个处理程序,它们将始终按照绑定的顺序执行

编辑
此qoute来自.bind文档,但也相关.on.
您也可以在.on DOCS中看到相同的场景.

从jQuery 1.4开始,同一个事件处理程序可以多次绑定到一个元素.

例:

$('#parent').on('click','.child, .child3', function(e){ console.log("Click #1 for - " + e.target.innerText)})
$('#parent').on('click','.child, .child3', function(e){ console.log("Click #2 for - " + e.target.innerText)})
Run Code Online (Sandbox Code Playgroud)
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<div id="parent">
  <div class="child child1">
  child 1 ( click me!)
  </div>
  <div class="child child2">
    child 2 ( click me!)
  </div>
  <div class="child3">
  child 3 ( click me!)
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)