gpt4 book ai didi

javascript - 在 Kendo 的自定义 Binder 中添加事件参数?

转载 作者:行者123 更新时间:2023-11-29 22:08:48 25 4
gpt4 key购买 nike

我有一个用于按键的自定义 Binder 。当我调用绑定(bind)属性时,它不接受我的事件参数。在我的例子中,我的属性是一个我想用我自己的事件参数触发的函数。这样的事情可能吗?在下面的示例中,值是未定义的,但我如何将值传递回调用者 (viewModel.onKeyPress)?

<div id="body">
<input data-role="combobox" data-bind="keyPress: onKeyPress" />
<div id="output"></div>
</div>
<script>
kendo.data.binders.widget.keyPress = kendo.data.Binder.extend({
init: function (element, bindings, options) {
kendo.data.Binder.fn.init.call(this, element, bindings, options);
var binding = this.bindings.keyPress;
$(element.input).bind("keypress", function(e) {
var values = { a: 1, b: 2, c: 3 };
binding.get(e, values); //DOESN'T WORK!
});
},
refresh: function () { }
});

var viewModel = kendo.observable({
onKeyPress: function (e, values) {
$("#output").append("<div>keyPress (see console.log)</div>");
console.log(e);
console.log(values);
}
});

kendo.bind("#body", viewModel);
</script>

http://jsfiddle.net/jpKNr/58/

最佳答案

binding.get() 调用将在不向其传递任何参数的情况下调用该函数。您可以使用以下解决方法:

  kendo.data.binders.widget.keyPress = kendo.data.Binder.extend({
init: function (element, bindings, options) {
kendo.data.Binder.fn.init.call(this, element, bindings, options);
var binding = this.bindings.keyPress;

var method = binding.source.get(binding.path);

$(element.input).bind("keypress", function(e) {
var values = { a: 1, b: 2, c: 3 };
method.call(binding.source, e, values);
});
},
refresh: function () { }
});

这是一个现场演示:http://jsbin.com/eriWOq/1/edit

关于javascript - 在 Kendo 的自定义 Binder 中添加事件参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19310161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com