我如何组合两个触发相同 class 名称的函数?

How can I combine two functions that fire on the same class name?

我有一个 function 当我点击我的 jquery 数据表项目中的项目时触发。

$('.table tbody').on( 'click', '.item', function (e) {
   alert("clicked");
});

我在数据表外有一个具有相同 class 的项目,适用于此 function:

  $('.item').on( 'click', function (e) {
     alert("clicked");
  });

function里面的内容是一样的。有没有办法把这两个功能合二为一?

你可以先创建一个函数

const func = () => {
   alert("clicked")
};

并在两个事件侦听器中执行此操作

$('.table tbody').on( 'click', '.item', func);
$('.item').on( 'click', func);

更新:

如果你想在函数内部处理事件,那么你也可以使用箭头函数。

const func = (e, el) => {
   e.preventDefault()
   alert($(el).attr("data-id"));
};

$('.table tbody').on( 'click', '.item', function(e){
     func(e, this);
});
$('.item').on( 'click',function(e){
     func(e, this);
});