Javascript 运行函数时使用jquery.on
我有下面一行jquery,它对表单上任何文本输入中的任何向上键事件作出反应。然后它运行一个名为Javascript 运行函数时使用jquery.on,javascript,jquery,Javascript,Jquery,我有下面一行jquery,它对表单上任何文本输入中的任何向上键事件作出反应。然后它运行一个名为processPrimarySearch的函数: $('#primarySearch input[type="text"]').on('keyup', this, processPrimarySearch); 这是可行的,但我想对其进行调整,以便keyup忽略按tab键,如下所述: 我不知道如何重新编写,因为我不知道在调用processPrimarySearch之前如何传递this。例如,我有以下内容
processPrimarySearch
的函数:
$('#primarySearch input[type="text"]').on('keyup', this, processPrimarySearch);
这是可行的,但我想对其进行调整,以便keyup
忽略按tab键,如下所述:
我不知道如何重新编写,因为我不知道在调用processPrimarySearch
之前如何传递this
。例如,我有以下内容,但它不起作用,我不明白我应该写些什么来让它起作用:
$('#primarySearch input[type="text"]').on({
"keyup": function(e) {
if (e.which != 9) {
// No reference to 'this'!
processPrimarySearch();
}
}
});
function processPrimarySearch() {
// ...
}
您的逻辑几乎正确,只需使用
call()
为函数提供上下文即可。试试这个:
$('#primarySearch input[type="text"]').on({
"keyup": function(e) {
if (e.which != 9) {
processPrimarySearch.call(this);
}
}
});
function processPrimarySearch() {
// ...
}
工作完美。非常感谢你。我不知道
.call()
,所以我会进一步研究这个问题。没问题,很乐意帮助。以下是供您参考的文件: