如何从keyDown事件中调用kickout.js事件

时间:2018-06-20 10:04:14

标签: javascript jquery knockout.js keydown keyevent

我想执行keyDown事件中受击倒js约束的事件。

HTML

<button id="copyButton" data-bind="click: clipboardModel.copy">copy</button>

jQuery

$('#someElement').on('keydown', function(e) {
    switch (e.keyCode) {
        case 67: // c
            if (!(e.ctrlKey || e.metaKey)) break;
            $('#copyButton').click();
            break;
    }
});

它可以解决这个问题,但似乎不是正确的方法。

1 个答案:

答案 0 :(得分:1)

您可以bind to the event directly

<input id="someElement" data-bind="event: { keydown: clipboardModel.copyKeydown }" />

但这确实意味着您需要将keyCode检入敲除功能中来代替:

var clipboardModel = {
    copyKeydown: function(data, e) {
        switch (e.keyCode) {
            case 67: // c
                if (!(e.ctrlKey || e.metaKey)) break;
                clipboardModel.copy();
                break;
        }
    },
    copy: function() { /*...*/ }
}

我在这里对您的视图模型做了一些假设,您可能需要对此稍作调整。