jQuery использует клавишу escape, чтобы закрыть переключатель

2 часть вопроса здесь... У меня есть несколько DIV, которые используют простую функцию .click show() для отображения содержимого. Есть ли способ объединить их, чтобы обрезать мой код? Я не был уверен, потому что все они отображают DIV с уникальным идентификатором.

$('a#hmo-blue-lnk1').click(function() {
    $('#hmo-blue1').show();
    return false;
  });

$('a#hmo-blue-lnk2').click(function() {
    $('#hmo-blue2').show();
    return false;
  });

$('a#hmo-blue-lnk3').click(function() {
    $('#hmo-blue3').show();
    return false;
  });

я закрываю их с помощью этого фрагмента:

$('a.close').click(function() { 
     $('#hmo-blue1').hide();
     $('#hmo-blue2').hide();
     $('#hmo-blue3').hide();

     return false; 
  });

2-я часть вопроса ... как я могу интегрировать тот аспект, что пользователь может просто нажать клавишу выхода, чтобы также открыть (или закрыть) отображаемое поле?


person tony noriega    schedule 10.05.2010    source источник


Ответы (1)


Для первой части:

    for (i=1; i<=3; i++)
    {
           $('a#hmo-blue-lnk'+i).click(function() {
                 $('#hmo-blue'+i).show();
                 return false;
           });
    }

Для второй части.

$(document).keypress(function(e) { 
    if (e.which == 27) {
          for (i=i; i <=3; i++)
          {
                 $('#hmo-blue'+i).hide();
          }
    }
});

Вы также можете изменить свою функцию скрытия на цикл for, а затем вызвать ее вместо закрытия, выполнив $('a.close').click(), который вместо этого вызовет щелчок по a.close.

person Gazler    schedule 10.05.2010