手动触发jQuery的keyup事件?

57

我想我找到解决方法了...请看我的评论。抱歉。

我有一个JSON Web服务,它在特定的keyup()事件上被调用,根据输入检索一些数据。我想在任何内容被键入之前加载初始数据。我尝试按照文档中所述手动调用keyup(),但似乎没有任何作用。

$('#inputItemName').keyup(function () {
//perform query, display results
});

在输入框中输入时,^^效果非常好

$('#inputItemName').keyup();

^^ 在文档就绪函数之后立即调用,似乎没有任何作用。


2
我想我弄明白了...我将调用结果的函数移到了脚本标签中比keyup()调用更高的位置,现在它可以工作了。这有道理吗? - user736893
1
是的:在触发触发器之前,您必须将函数附加到触发器上!(否则事件会被触发,但不会调用任何函数) - oliverpool
7个回答

89

对我来说运行良好:http://jsfiddle.net/radu/gD5WL/

$('#test').keyup(function () {
    console.log('hello');
});

$('#test').keyup();

keyup事件在页面加载时被调用。


3
所以诀窍在于次序。由于我的回答不太受欢迎,我把采纳答案改成了你的。 - user736893
keyCode怎么样? - gumuruh

38
$('#inputItemName').trigger('keyup');

7

3
您的选择器中缺少一个#,尝试添加它... $('#inputItemName').keyup();

2

我想我找到解决方法了...我把调用结果的函数放在脚本标签中比keyup()调用更高的位置,现在它能正常工作了。


1
你在第二个中缺少id的哈希标记:

$('#inputItemName').keyup();


抱歉,刚刚更新了...我现在已经加上了那个,但它仍然不起作用。 - user736893
创建一个 jsFiddle,我们来看一下。 - glortho

-3

试试这个:

$('#inputItemName').bind('keyup',function() {
    //stuff
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接