我经常使用 jQuery.trigger()
来处理重复事件。
例如,如果我有一个有四个导航按钮(上、下、左、右)的小部件,并且每个按钮上都绑定了一个事件处理程序,例如:
$('#up').on('click', function() {
// move up
...
});
到目前为止,小部件运行良好,现在我想添加键盘快捷键,up/down/left/right arrow key
以便每个按钮的工作方式与按下时完全相同up/down/left/right button
。
在这种情况下,我经常使用.trigger()
键盘快捷键作为这些按钮的包装器。
$(document).on('keydown', function(e) {
// up arrow key
if (e.keyCode == 38) $('#up').trigger('click');
...
});
这样使用是不好的做法.trigger()
吗?
我认为当我将库作为黑匣子处理时非常方便。如果已经有一些按钮来帮助控制库,即使不知道库的 API,我也可以通过触发这些按钮上的点击事件来使用库的功能。