jquery: как написать событие одиночного нажатия для 2 или более разных кнопок?

#javascript #jquery #ajax #click

#javascript #jquery #ajax #нажмите

Вопрос:

  $("#loggedinNav").click(function (e) {
     // do something
    });
  

это мое, и я хочу использовать ту же функциональность нажатия для других кнопок, так могу ли я добиться такого поведения следующим образом:

 $("#loggedinNav" || "#mainlogo").click(function (e) {
     // do something
    });
  

где || = or

Ответ №1:

 $("#loggedinNav, #mainlogo").click(function (e) { // do something });
  

Комментарии:

1. Я бы сделал это, но если вы выходите за рамки двух или трех кнопок, возможно, вам захочется рассмотреть возможность создания класса, который присваивается кнопкам, а затем использовать имя класса вместо идентификаторов.

Ответ №2:

Альтернатива ответу metaforce.

Вы могли бы сделать это:

 var clickHandler = function(e) { 
    //Do stuff 

    };

$("#loggedinNav").click(clickHandler);
$("#mainlogo").click(clickHandler);
  

Это было бы лучше, если у вас много кнопок, которым нужен обработчик, или вы хотите сделать это в нескольких функциях.

Комментарии:

1. да, это то же самое решение, но если ваш обработчик нажатия выполняет те же действия, то лучше поступить так же, как предлагалось ранее … это сэкономит время, когда вы захотите изменить свое действие в будущем…

Ответ №3:

вы можете сделать $("#loggedinNav,#mainlogo").click(...) согласно документам jQuery

Комментарии:

1. не работает, вы должны поместить все с одинаковыми двойными ссылками… как указано metaforce (см. Решение выше)