如何根据哪个HTML元素触发了一个公共处理程序来调用一个附加函数



我的选择按钮有一个通用的事件处理程序:

我的代码是:

    $(document).ready(function(){$("#delAppSelectApp,#userAppSelectApp,#hexSelectApp,#countSelectApp").change(function(){
    ......
    });});

如果更改"countSelectApp"选择触发通用处理程序。

我试过使用

    alert(this.toSource())

以确定哪个选择触发了处理程序,但我得到的只是一个警告,说

    [object HTMLelement]

在事件处理程序中,jQuery将this设置为事件应用的DOM元素,因此您可以直接访问应用于DOM事件的任何属性或方法,也可以将其封装在jQuery调用中作为$(this)来访问jQuery方法。

因此,在我看来,测试事件是否应用于"countSelectApp"的最简单(当然也是最有效)的方法就是使用this.id:

if (this.id === "countSelectApp") {
   // call your function here
}

顺便说一句,与其列出jQuery选择器中的所有元素id,我更倾向于给这些元素一个公共类,比如"selectApp",然后使用类作为选择器绑定更改处理程序:

$(".selectApp").change(function() {
   if (this.id === "countSelectApp") {
      // call your function here
   }
...
});

ask:

if($(this).attr('id')=="countSelectApp")
     callYourFunction();

您可以将事件对象用作;

$('selector').change(function(event) {
  console.log(event.target);
});

相关内容

  • 没有找到相关文章

最新更新