javascript - 旋转时使用 MVVM 更新 Kendo NumericTextBox

标签 javascript jquery mvvm kendo-ui kendonumerictextbox

看看 MVVM 示例 here :

如何获取 MVVM 值以在旋转事件(单击向上或向下箭头)时更新

这是我尝试过的:

在旋转事件中,我尝试做

$("#ntb").getKendoNumericTextBox().trigger("change");

这有效但有奇怪的副作用。

如果 DOM 上有足够的元素,旋转事件将继续触发。

重现此问题的另一种方法是从 here (jsbin) 中获取代码

将其插入到 HTML 文件中,在 Chrome 或 FF 中加载它,然后在此行插入一个断点:

$("#ntb").getKendoNumericTextBox().trigger("change");

继续点击继续,你会看到断点一次又一次地被命中。

在 firefox 中,如果我的 DOM 足够大,我会得到一个没有断点的重现。

最佳答案

我检查了你的 jsbin我在 html 和 javascript 中看到了一些错误。我认为当您测试不同的代码时,您忘记了更正它。无论如何,我清理并更正您的代码并将它们放入此 jsfiddle .

放置断点后 (debugger;) 我看到你是对的 onSpin 事件无限触发但是如果你在事件中放置断点就会发生这种奇怪的行为。如果您删除断点并放置一个 console.log("onSpinevent triggered.");,您会发现一切正常并且事件只触发了一次。

我以前在不同的场景中遇到过这样的问题,例如使用 alert() 而不是 console.log() 进行调试。


代码:

var viewModel = kendo.observable({
    selectedNumber: 0,
    isEnabled: true,
    isVisible: true,
    onSpin: function () {
        //debugger;
        console.log("`onSpin` event triggered.");
        $("#ntb").getKendoNumericTextBox().trigger("change");
    },
    onChange: function () {}
});
kendo.bind($("#example"), viewModel);

关于javascript - 旋转时使用 MVVM 更新 Kendo NumericTextBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23840127/

相关文章:

wpf - 为什么我的应用程序在设计时出错,但在运行时却没有?

mvvm - 初始化 View 模型

javascript - 即使我从另一个工作的 fiddle 中复制代码,JSFiddle 也不起作用

javascript - Jquery setTimeout 方法在更改事件上触发

javascript - 我的选择列表如何变得不可编辑?

wpf - 更改多个条件之一时如何设置属性?

javascript - 无法将动态发票值发送到 struts2 服务器

javascript - 冲浪者 : Spotty Canvas Graph Using lineTo() and Stroke()

javascript - 我可以使用 Chrome 开发工具查看/修改 Redux 存储吗

javascript - 单击外部时下拉菜单折叠