вызов события (keypress) кликом

У меня есть два события: 1) keypress: по нему происходит поиск данных в массиве. 2) click: по данному событию должен происходить принудительный вызов события keypress, который не происходит.

У меня используется метод trigger(). Еще один момент - в keypress у меня используется условие нажатия Enter: if (event.keyCode == 13) {(тут вся логика поиска)} else {}. И как я уже написал, вызов keypress кликом не вызывается. Предполагаю, что это из-за условия event.keyCode == 13, но могу и ошибаться. Подскажите, пожалуйста, возможно в вызове функции нужно как-то это условие (event.keyCode == 13) тоже прописать? Если да, то подскажите как, пожалуйста. Если не в этом проблема, то в чем? Буду рад любому ответу. Из кода удалил все лишнее для данного вопроса, оставив основу. Спасибо.

$(document).on('keypress', '.search_edit', function(event){
          let value = $(this).val().toLowerCase();

          if (event.keyCode == 13) {      
          $('.blog_content').each(function() {
          
            if($(this).text().toLowerCase().indexOf(value) === -1) {
              $(this).addClass('item_none');
            return;
            } else {
              $(this).removeClass('item_none');
                   }             
          });

});

   
$('.tags li a').on('click', function (e) {
      e.preventDefault();
      $('.search_edit').trigger('keypress');
});


Ответы (2 шт):

Автор решения: Javascript Dev

Возможно, вызывать keypress не обязательно?

function handler(event) {
    let value = $('.search_edit').val().toLowerCase();
    if (!event || event.keyCode == 13) { // Если функция вызвана keypress - `event != null`
        // Если `event == null` - вызывали функцию при клике
        $('.blog_content').each(function() {
            if($(this).text().toLowerCase().indexOf(value) === -1) {
              $(this).addClass('item_none');
            } else {
              $(this).removeClass('item_none');
            }             
        });
    }
}

$(document).on('keypress', '.search_edit', handler);
$('.tags li a').on('click', function (e) {
      e.preventDefault();
      handler(); // Запускаем событие
});
→ Ссылка
Автор решения: Javascript Dev

Другой вариант.
Вероятное, при вызове события keypress у event свойство keyCode не определено.
Попробуйте так:

$('.tags li a').on('click', function (e) {
      e.preventDefault();

      var event = jQuery.Event("keypress"); // Создаём событие
      e.keyCode = 13; // Делаем так, как будто пользователь нажал нужную клавишу
      $('.search_edit').trigger(event); // Запускаем событие
});
→ Ссылка