在knockout自定义绑定中单击键

Get clicked key in knockout custom binding

本文关键字:单击 绑定 knockout 自定义      更新时间:2023-09-26

假设我们有以下情况:

<div>   
    <p>Price: <input data-bind='priceValue: price, valueUpdate: 'afterkeydown'' /></p> 
</div>

KO

var ViewModel = function() {
    this.price = ko.observable();
};
ko.bindingHandlers.priceValue = {
    init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
    },
    update: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
        //Here I want to get key which force this action
    }
};
ko.applyBindings(new ViewModel());

在我的priceValue绑定的update函数中,我想知道哪个键强制调用update。

这可能吗?

在绑定处理程序的init(或update)中,您可以为目标元素的键点击设置一个jQuery侦听器。

init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
          $(element).on('keyup', function(e){
               if(e.which === YOURKEYCODE){
                    // do something
               }
          });
    },
例如,退格键的代码是8,所以您将使用if(e.which === 8)