如何使用jQuery中的触发器传递参数?

3
我有一个方法能够触发自定义事件。
   keyDown: function(keycode) {
        $(window.APP).trigger('keyDown', keycode);
    },

我需要从 window.APP 中获取 keycode。目前即使在 keyDown 传递正确的值时,警报结果仍然是未定义的。
你有什么想法这里我做错了吗?
在 window.APP 中。
keyDown: function(keyCode) {
     alert(keyCode);
    }
}

我正在使用jQuery 1.4.2


1
附注:如果你要支持不同的浏览器,你必须知道 keydown 事件是“麻烦的”,因为不同的浏览器使用不同的代码。我建议你查看这个链接 http://unixpapa.com/js/key.html,了解你将面临的问题,以及这个链接 http://www.asquare.net/javascript/tests/KeyCode.html 进行快速测试(无需在开发者工具中徘徊)。 - sataniccrow
4个回答

2

尝试使用以下方法:

keyDown: function(event, keyCode) {
     alert(keyCode);
    }

1
@GibboK,请检查这个小样例http://tinker.io/73f85,它的运行结果符合预期。 - Jonathan Naguin

1
根据文档trigger的第二个参数是一个数组,因此您可能应该这样调用:$(window.APP).trigger('keydown', [keyCode])

0

你试过这个吗:

keyDown: function(e) {
    var code = (e.keyCode ? e.keyCode : e.which);
    $(window.APP).trigger('keyDown', code);
},

0

试试这个,

自定义事件

keyDown: function(e) {
    $(window.APP).trigger('keyDown', e);
},

window.APP

keyDown: function(e) {
     k=e.keyCode || e.which;
     alert(k);
}

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