Более лаконичные слушатели событий

0

У меня есть несколько слушателей событий, все они действуют несколько иначе. То, что я пытаюсь сделать, - сделать этот код более кратким, так как кажется, что это длинный способ сформулировать то, что я пытаюсь достичь. Учитывая, что каждая функция действует после нескольких разных событий, возможно ли это, или это лучшее, на что я могу надеяться?

function action() {
  var all = $("input, textarea, select");

  all.on("focus, keyup", function() {
    doSomething();
  });

  all.focus(function() {
    doSomethingElse();
  });

  $("input, textarea").keyup(function() {
    doAnotherThing();
  });

  $("select").change(function() {
    doAnotherThing();
    doYetAnotherThing();
  });
}
  • 0
    Этот вопрос будет лучше на codereview.stackexchange.com
  • 0
    Альтернативой этому является использование операторов if с nodeName и event.type внутри одного .on('keyup,change,focus', function(){ , но я не уверен, что это приведет к уменьшению кода.
Теги:
function
event-listener

1 ответ

0

Что-то вроде того:

function action() {
  var all = $("input, textarea, select");

  all.on("focus, keyup", function(event) {
    doSomething();

    if(event.type == "focus"){
      doSomethingElse();
    }
  });

  $("input, textarea").keyup(function() {
    doAnotherThing(someParams?);
  });

  $("select").change(function() {
    doAnotherThing(someParams?);
    doYetAnotherThing();
  });
}

function doAnotherThing(someParams?){
    //Your code
}

Возможно, события с клавишами/изменениями могут быть более сукцинами... но в настоящее время нет идеи.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню