为多个元素组合jQuery事件侦听器

时间:2015-01-20 22:43:23

标签: javascript jquery coffeescript

如何将以下内容合并为两个事件侦听器?

  $(document).on "focus", "input", (e) ->
    $element.addClass "class-name"
  $(document).on "blur", "input", (e) ->
    $element.removeClass "class-name"
  $(document).on "focus", "textarea", (e) ->
    $element.addClass "class-name"
  $(document).on "blur", "textarea", (e) ->
    $element.removeClass "class-name"

1 个答案:

答案 0 :(得分:1)

请尝试以下代码:

 $("textarea").on("blur focus", function(event){
     if ($(this).hasClass('active')) {
         $(this).removeClass("active");
     }
     else {
         $(this).addClass('active');
     } 
 })

 $("input").on("blur focus", function(event){
     if ($(this).hasClass('active')) {
         $(this).removeClass("active");
     }
     else {
         $(this).addClass('active');
     } 
 })

在没有IDE的情况下完成,但这就是你如何组合事件。 .on()方法第一个参数允许您列出事件(不确定它是否在数量上有限,但我还没有遇到任何问题。