我试着用下面的代码模拟按键.
jQuery('input[name=renameCustomForm]').live('keyup', function (e) {
console.log('pressed');
});
jQuery('body').click(function (e) {
console.log(jQuery('input[name=renameCustomForm]'));
var press = jQuery.Event("keypress");
press.which = 13;
jQuery('input[name=renameCustomForm]').trigger(press);
});
我从其他帖子中得到了这段代码,但它不起作用。有人知道为什么吗?
更新
修好了..。似乎触发"keypress“并不会自动触发"keyup”
发布于 2011-10-21 05:14:39
通常,当用户向inout字段添加某些内容时,会发生以下事件:
keydown
(once).keypress
(至少一次,当键按下down)keyup
(一旦)时,附加事件uccur )。
当一个关键事件被模拟时,没有必要所有事件都按照这个顺序发生。事件是手动分派的,因此正常的事件链不会被激活。
因此,如果手动触发keypress
事件,则不会触发keyup
事件。
发布于 2011-10-21 05:12:20
每次单击页面上的任何位置时,代码都会触发一个keypress
。
对于您的情况,最好使用输入框的.blur()
事件。
jQuery('input[name=renameCustomForm]').live('keyup', function (e) {
console.log('pressed');
}).live('blur', function(){
var self = $(this);
console.log( self );
var press = jQuery.Event("keyup");
press.which = 13;
self.trigger( press );
});
https://stackoverflow.com/questions/7849646
复制