我有以下jquery行,它对表单上任何文本输入中的任何键向上事件做出反应。然后它运行一个名为processPrimarySearch
的函数:
$('#primarySearch input[type="text"]').on('keyup', this, processPrimarySearch);
这样做有效,但我想对其进行调整,以便keyup
忽略按Tab键,如下所述:Keyup event behavior on tab
我无法弄清楚如何重写这个,因为我不知道在调用this
之前如何传递processPrimarySearch
。例如,我有以下但它不起作用,我不明白我应该写什么来使它工作:
$('#primarySearch input[type="text"]').on({
"keyup": function(e) {
if (e.which != 9) {
// No reference to 'this'!
processPrimarySearch();
}
}
});
function processPrimarySearch() {
// ...
}
答案 0 :(得分:3)
您的逻辑几乎是正确的,您只需使用call()
来为函数提供上下文。试试这个:
$('#primarySearch input[type="text"]').on({
"keyup": function(e) {
if (e.which != 9) {
processPrimarySearch.call(this);
}
}
});
function processPrimarySearch() {
// ...
}