我有两个功能想合并为一个。是否可以结合...

$(document).ready(function () {
   $(".jobtype").change(function () {
      if ($("select[name='jobtype']").val() != "Low Budget") {
         // something happens
      }
   });
});


和这个...

$(document).ready(function () {
   $(document).on('keyup', function (evt) {
      if (evt.keyCode == 27) {
         // same thing happens
      }
   });
});


这样它们就可以同时用于change()和keyup?

编辑:对不起,我真的在深夜写了这篇文章,所以也许没有正确地解释自己。

我有一种形式,当从下拉选择列表中选择“低预算”选项时,该函数将运行,从而改变页面上的内容。

但是,如果取消选择“低预算”选项,则会运行另一个脚本,该脚本撤消更改并将页​​面返回其原始形式。将该代码恢复为原始格式的代码可能长达30行。

如果用户按下ESC并关闭表格,我希望运行同一段代码。

两次写入相同的函数似乎很奇怪,所以想知道什么是正确且最有效的编码方式。我的一部分认为我可以将30行代码写在类似

function doSomething() {
    // 30 lines of code
}


然后两个事件里面有:

$(document).ready(function () {
    $(".jobtype").change(function () {
        if ($("select[name='jobtype']").val() != "Low Budget") {
            doSomething();
        }
    });
});




$(document).ready(function () {
    $(".jobtype").change(function () {
        if ($("select[name='jobtype']").val() != "Low Budget") {
           doSomething();
        }
    });
});


但是我不确定结构代码的正确方法。

再次感谢

最佳答案

也许此解决方案还不够好,但是您可以尝试:


$(document).ready(function() {
    $(".jobtype").change(function() {
        if ($("select[name='jobtype']").val() != "Low Budget") {
            common();
        }
    });

    $(document).on('keyup',function(evt) {
        if (evt.keyCode == 27) {
            common();
        }
    });

   function common() {
     alert('1111'); // some common logic
   }
});

10-07 22:00