Я знаю, что вы можете передавать дополнительные аргументы при использовании trigger()
, но я не уверен, что вы можете перезаписать свойства объекта event
. Вы можете передавать данные, как это, хотя:
$(document).on('keydown keyup keypress', function (event, characterCode) {
if (typeof(characterCode) == 'undefined') {
characterCode = -1;
}
console.log('type = ' + event.type);
console.log('characterCode = ' + characterCode);
});
И это будет trigger()
код:
$(document).trigger('keydown', [ "0".charCodeAt(0) ]);
Вот демоверсия: http://jsfiddle.net/A7cEE/ (смотрите журналы на вашей консоли)
Код из предоставленного вами ответа на стековый поток работает нормально:
Для захвата:
$(document).on('keydown', function (event) {
console.log('type = ' + event.type);
console.log('keyCode = ' + event.keyCode);
});
Для запуска:
var e = jQuery.Event('keydown');
e.keyCode = "0".charCodeAt(0);
$(document).trigger(e);
Демо: http://jsfiddle.net/A7cEE/1/
Обратите внимание, что .on()
является новым в jQuery 1.7 и в этом случае совпадает с .bind()
.