在JavaScript中,我尝试使用jquery的trigger()
函数触发以下事件:
document.addEventListener('keydown', function(e) {
(
// e.which == 34 || PAGE DOWN
// e.which == 32 || SPACE
axis == 'X' && e.which == 39 // RIGHT
// axis == 'Y' && e.which == 40 // BOTTOM
) && deck.next();
(
// e.which == 33 || PAGE UP
axis == 'X' && e.which == 37 // LEFT
// axis == 'Y' && e.which == 38 // TOP
) && deck.prev();
});
我正在尝试使用以下行触发此事件侦听器:
$(document).trigger({eventType:"keydown", which:39});
但是当我这样做时,我收到以下错误:
未捕获的TypeError:q.indexOf不是函数
我希望该行触发deck.next();
请告知我做错了什么。
答案 0 :(得分:2)
添加jquery事件监听器,然后调用它 (你需要jquery事件监听器,因为你用jquery触发它)
interface IEnhanceable<T>
{
IEnumerable<T> EnhanceWith(IEnumerable<aGenericType> foo);
}
并像这样触发它
$(document).on('keydown', function(e) {
(
// e.which == 34 || PAGE DOWN
// e.which == 32 || SPACE
axis == 'X' && e.which == 39 // RIGHT
// axis == 'Y' && e.which == 40 // BOTTOM
) && deck.next();
(
// e.which == 33 || PAGE UP
axis == 'X' && e.which == 37 // LEFT
// axis == 'Y' && e.which == 38 // TOP
) && deck.prev();
});
答案 1 :(得分:2)
$(document).trigger("keydown", {which: 39});
这是correct syntax ...
答案 2 :(得分:1)
我认为您的触发器代码在语法上是错误的
var e = jQuery.Event("keydown");
e.which = 39; // # Some key code value
$(document).trigger(e);
此外,jquery触发器不会识别通过普通javascript附加的处理程序。因此,您必须仅使用jquery附加处理程序。 像这样:
var e = jQuery.Event("keydown");
e.which = 39;
$(document).trigger(e);
或
$(document).keydown(function(event){});
或
$(document).on('keydown',function(event){});