Jquery在不同事件上执行/触发相同的代码

Man*_*the 0 javascript jquery jquery-trigger

我有自定义标签的onclick事件的这个功能 densitybtn='yes'

$("[densitybtn='yes']").on('click', function () {
    var no_of_people = 0;
    //calcdensity
    $("[calcdensity='yes']").each(function () {
        no_of_people = parseInt($(this).val()) + no_of_people;
    });
    var total_density = parseInt(carpetArea) / parseInt(no_of_people);
    $("#densityVal").html(Myval);
});
Run Code Online (Sandbox Code Playgroud)

我可以通过扩展到$("[calcdensity ='yes']")来扩展相同的代码.on('blur')

$("[calcdensity='yes']").on('blur').$("[densitybtn='yes']").on('click', function () {

});
Run Code Online (Sandbox Code Playgroud)

我不确定在不同的事件上执行相同的代码

让我知道这种方法是否正确?或者有其他可用方式吗?

Pat*_*ans 6

正常定义函数(而不是匿名函数)并将函数传递给事件侦听器

function listener() {
   var no_of_people = 0;
   //calcdensity
   $("[calcdensity='yes']").each( function() {
      no_of_people = parseInt($(this).val())+no_of_people;
   });
   var total_density = parseInt(carpetArea)/parseInt(no_of_people);
   $("#densityVal").html(Myval);
}

$("[densitybtn='yes']").on('click', listener);
$("[calcdensity='yes']").on('blur', listener);
Run Code Online (Sandbox Code Playgroud)