gpt4 book ai didi

javascript - 使用 Knockout 设置更改事件进入选择下拉列表

转载 作者:可可西里 更新时间:2023-11-01 13:20:38 26 4
gpt4 key购买 nike

我有一个很好用的下拉菜单:

<select class="picker-select" data-bind="options: searchOptions, select:{}, optionsText: 'name', optionsValue: 'id', value: selectedSearchOption" ></select>

现在我想在选择更改时执行一个函数,但它似乎不起作用。


我尝试过的:

onchange event :

onchange="actionWhenChange()"   // also tried without parenthesys

型号:

function actionWhenChange(event) {
console.log("doing stuff");
};

错误:

Uncaught (in promise) ReferenceError: actionWhenChange is not defined


还有knockout event binding (也尝试过不带括号)

data-bind="event: { onchange: actionWhenChange() }, ... more bindings

型号:

self.actionWhenChange = function (event) {
console.log("doing stuff");
}

但我没有收到任何错误。

有什么想法吗?

最佳答案

嗯,终于知道是怎么回事了:)

第一个解决方案无效,因为无法找到模型中的函数。这就是未定义错误的原因。

关于第二个选项,event binding , knockout 正在处理 DOM 事件,并且 onchange 不是可以找到的 DOM 事件之一 here .

所以解决方案只是从 onchange 中删除 on 并使用 change 事件:

data-bind="event: { change: actionWhenChange }, ... more bindings

但是

解决此问题的正确方法是 user3297291 所述: 以这种方式使用订阅模型内部可观察值:

self.selectedSearchOption.subscribe(self.actionWhenChange) – 

希望这对以后的人有帮助:)

关于javascript - 使用 Knockout 设置更改事件进入选择下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49651340/

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