如何从 keyDown 事件中调用 knockout.js 事件
How to call the knockout.js event from the keyDown event
我想从keyDown事件中执行knockoutjs绑定的事件
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;
}
});
它适用于此,但似乎不是正确的方法。
你可以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() { /*...*/ }
}
我在这里对你的视图模型做了一些假设,你可能需要稍微调整一下。
我想从keyDown事件中执行knockoutjs绑定的事件
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;
}
});
它适用于此,但似乎不是正确的方法。
你可以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() { /*...*/ }
}
我在这里对你的视图模型做了一些假设,你可能需要稍微调整一下。