减少JQuery重复代码

时间:2014-02-25 12:02:06

标签: javascript jquery events

在Jquery代码中,我遇到以下情况:

$("#input_field").on('input', function () {
    setTimeout(function (e) {
        $.post("endpoint.php", $('#main').serialize(), function (response) {
            parseRes(response);
        });
    }, 1);
});
$("#input_field").on("paste", function () {
    setTimeout(function (e) {
        $.post("endpoint.php", $('#main').serialize(), function (response) {
            parseRes(response);
        });
    }, 1);
});

唯一不同的是事件("输入"或"粘贴")。

有没有办法避免这种重复(例如,向一个代码块添加更多事件)?

2 个答案:

答案 0 :(得分:4)

尝试,

 $("#input_field").on('input paste',function() {
     setTimeout(function(e) {
       $.post("endpoint.php", $('#main').serialize(), function (response) {
          parseRes(response);
        });
       }, 1);
  });

请阅读here以了解有关.on()

的更多信息

答案 1 :(得分:2)

From the documentation

  

.on(events [,selector] [,data],handler(eventObject))

     

事件:一个或多个以空格分隔的事件类型和   可选的命名空间,例如“click”或“keydown.myPlugin”。

这意味着您的代码简单归结为:

$("#input_field").on('input paste',function() {
    // ...
});