gpt4 book ai didi

javascript - Selectize.js:给定类方法时不调用 onItemAdd 属性

转载 作者:行者123 更新时间:2023-12-03 10:36:49 25 4
gpt4 key购买 nike

我在使用 onItemAdd 时遇到 selectize.js 问题构造函数的参数 ( https://github.com/brianreavis/selectize.js/blob/master/docs/usage.md#callbacks )。

假设我有一个类,该类实例将保存并管理 selectize 实例。我想动态添加选项,并在选择选项时调用我的类的方法。在下面的代码中,<select id="#select"></select>没有提到但确实存在。

function Class() {
var self = this;
// create the selectize instance
$('#select1').selectize({
onItemAdd: self._func
});
var select = $('#select1')[0].selectize;
select.addOption({value: 'hello', text: 'Hello'});
select.addOption({value: 'world', text: 'World'});

self._func = function (value) {
alert(value);
}
}

$(function() {
new Class();
});

令人惊讶的是,对象方法self._func选择项目时永远不会调用。但是,如果我将其替换为 onItemAdd: function (value) { self._func(value); } 之类的内容,对象方法self._func按预期调用!

演示该问题的 JsFiddle:https://jsfiddle.net/qDL37/1/

有什么理由可以解释这种行为吗?

最佳答案

好吧,我刚写完这篇文章就明白了原因。在上面的示例中,当创建 selectize 实例时,self._func 仍未定义。

要解决此问题,只需在创建 selectize 实例之前声明 _func 即可。

关于javascript - Selectize.js:给定类方法时不调用 onItemAdd 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28952721/

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