Мне нужно создать сценарий jQuery, чтобы игнорировать выполнение функции прослушивания событий keyup или keypress и выполнить ее, если я нажму клавишу Enter на клавиатуре.
Я использую компонент jquery, поэтому не могу изменить html-код ввода.
HTML
<input type = "text" id = "search" class = "search" (keyup) = "searchDataTable($event)">
JQuery:
$(document).on("keypress", "input", function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode != 13) {
console.info('it is not enter keyCode ')
//stop the execution of methode affected by event
}
});
Я ищу метод javascript, который отключает слушателя. Я хочу:
А. выполнить функцию, searchDataTable($event), только если я нажму "ввод".
-ИЛИ-
Б. измените тип события (keyup) на (keyup.enter) другим скриптом jquery.
Не имеет смысла. Если нет слушателя, как узнать, нажата ли enter? Что не так с проверкой keyCode в searchDataTable()?
Интересно, почему вы вообще используете jQuery с Angular?
Я согласен с charlietfl. Было бы разумнее проверить код ключа в методе searchDataTable, чем иметь два прослушивателя событий и пытаться заставить один предотвращать другой
Не достаточно ясно. Если вы хотите удалить прослушиватель событий keyup, используйте $(document).off("keypress", "input");, но он не сработает снова, пока вы снова не добавите прослушиватель событий.
у меня уже нет руки, чтобы изменить событие непосредственно в html-коде, поэтому я хочу создать скрипт, чтобы: либо выполнить другую функцию (в этом примере searchDataTable ()), либо остановить ее
есть ли причина, по которой вы можете сценарии JQuery, но не изменять html, вы не можете изменить html?
Вы можете вносить изменения в функцию searchDataTable($event), верно?
нет, я не могу вносить какие-либо изменения в функцию searchDataTable (). Я использовал angular-datatables в приложении angular с директивой DataTableDirective. так что это компонент jquery, мы не можем изменить код html, я думаю, только с DOM.
@SiddAjmera, это не удивительно, если вы прочитали вопрос и посмотрите теги ... И знаете, о чем они все.
настоящая проблема не в примере вверху, я поместил этот html-пример <input> только для того, чтобы увидеть пример, похожий на пример angular-datatables
почему не просто (keyup.enter) = "dosomething ()"?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы пытались отменить событие нажатия клавиши, если это не клавиша ввода?