2011-03-10 187 views
0

我们如何调用活动对象上的触发器单击事件。jquery触发事件

$("#continue").live("keypress",function(){ 
if (e.which == 32 || e.which == 13) { 
    $(this).trigger("click"); 
    } 
}); 

当我按下按钮进入如果块进入,但它不会触发按钮。你能帮我解决吗?提前致谢。

回答

0

您需要检查$(this)是否真的与您的按钮匹配。

尝试更换:

$(this).trigger('click') 

随着

$('#continue').trigger('click') 
+0

如果你给这个$('#continue')。trigger('click') 它的工作。但如果我们给$(这个)不起作用。我正尝试在单击事件中编写四个以上的id。 – shaik 2011-03-10 11:19:00

2

您使用参数 “E”,但从来没有真正通过它作为一个参数。

$("#continue").live("keypress",function(){ 

需求是:

$("#continue").live("keypress",function(e){ 
+0

谢谢。我和你解释过的一样。但它不起作用 – shaik 2011-03-10 11:21:17

+0

没有通过事件是代码的问题,但这不能解决问题。正如我在下面提到的,并非所有IE版本都支持e.which,也没有(正确地介意你)针对“特殊键”触发onpress事件。 – 2011-03-10 11:42:26

+0

从来没有想到过IE,因为它没有在问题中提到过(*微笑*)已经向上投票了;这是很棒的演绎工作。 – Athena 2011-03-10 12:19:57

2

试试这个:

$("#continue").live("keyup",function(e){ 
if (e.keyCode == 32 || e.keyCode == 13) { 
    $(this).trigger("click"); 
    } 
}); 

我在这个岗位涵盖这一点:EnterKey is not working sometimes in IE8, using jQuery's keyPressed

但基本上也有 “特殊键”不会在按键上触发,而且您必须使用keydown或keyup。

这里举例:http://jsfiddle.net/uS4XK/1/

虽然我必须说实话,这是一个奇怪的行为想。你想在#继续时点击事件,当他们按下输入?

+0

谢谢杰里米。它的工作... – shaik 2011-03-10 11:47:34

+0

如果这回答你的问题,请给它复选标记:)很高兴帮助。 – 2011-03-10 11:58:17