首页 > 解决方案 > 如何组合两个在同一个类名上触发的函数?

问题描述

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

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

我在数据表之外有一个具有相同类的项目,它适用于function

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

里面的function东西是一样的。有没有办法将这两个功能合二为一?

标签: jqueryfunctiondatatablesclick

解决方案


您可以先创建一个函数

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);
});

推荐阅读