Javascript 向Dojo FilteringSelect添加onChange事件
我尝试添加了一个onChange事件,每次在FilteringSelect上进行选择时都要触发该事件,但似乎没有触发。我一直在尝试让on函数中的动作同时是change和onChange,并且两者都不起作用。我尝试将onChange作为FilteringSelect的一个参数,但也不起作用 我正在使用Dojo1.10Javascript 向Dojo FilteringSelect添加onChange事件,javascript,dojo,Javascript,Dojo,我尝试添加了一个onChange事件,每次在FilteringSelect上进行选择时都要触发该事件,但似乎没有触发。我一直在尝试让on函数中的动作同时是change和onChange,并且两者都不起作用。我尝试将onChange作为FilteringSelect的一个参数,但也不起作用 我正在使用Dojo1.10 require(["dijit/form/FilteringSelect", "dojo/store/Memory", "dojo/dom", "dojo/on", "dojo/do
require(["dijit/form/FilteringSelect", "dojo/store/Memory", "dojo/dom", "dojo/on", "dojo/domReady!"],
function(FilteringSelect, Memory, dom, on) {
var filteringSelect = new FilteringSelect({
id: "zoom",
name: "zoom",
value: "z",
intermediateChanges: true,
store: new Memory({
data: [
{name:"Zoom", value:"z"},
{name:"50%", value:".5"},
{name:"75%", value:".75"},
{name:"100%", value:"1"},
{name:"125%", value:"1.25"},
{name:"150%", value:"1.5"},
{name:"175%", value:"1.75"},
{name:"200%", value:"2"}
]
}),
searchAttr: "name"
}, "zoomDiv").startup();
on(filteringSelect, 'change', function(value) {
console.log(value);
});
});
dijit/form/FilteringSelect
作为一个奇怪的API。当用户在文本框中键入某个内容时,当您在为自动完成而打开的列表中选择某个内容时,会触发onChange
,但当您从使用“打开”下拉按钮选择列表中的某个内容时,则不会触发
对于一致的事件,您可以查看属性displayedValue
require([“dijit/form/FilteringSelect”,“dojo/store/Memory”,“dojo/dom”,“dojo/on”,“dojo/domReady!”),
函数(FilteringSelect、内存、dom、on){
var filteringSelect=新filteringSelect({
id:“缩放”,
名称:“缩放”,
值:“z”,
中间变化:是的,
存储:新内存({
数据:[{
名称:“缩放”,
值:“z”
}, {
名称:“50%”,
值:“.5”
}, {
姓名:“75%”,
值:“.75”
}, {
名称:“100%”,
值:“1”
}, {
名称:“125%”,
值:“1.25”
}, {
名称:“150%”,
价值:“1.5”
}, {
名称:“175%”,
值:“1.75”
}, {
名称:“200%”,
值:“2”
}]
}),
searchAttr:“名称”
}“zoomDiv”);
filteringSelect.startup();
filteringSelect.watch('displayedValue',函数(属性、旧值、新值){
警报(属性+':'+新值);
});
});代码>
dijit/form/FilteringSelect
作为一个奇怪的API。当用户在文本框中键入某个内容时,当您在为自动完成而打开的列表中选择某个内容时,会触发onChange
,但当您从使用“打开”下拉按钮选择列表中的某个内容时,则不会触发
对于一致的事件,您可以查看属性displayedValue
require([“dijit/form/FilteringSelect”,“dojo/store/Memory”,“dojo/dom”,“dojo/on”,“dojo/domReady!”),
函数(FilteringSelect、内存、dom、on){
var filteringSelect=新filteringSelect({
id:“缩放”,
名称:“缩放”,
值:“z”,
中间变化:是的,
存储:新内存({
数据:[{
名称:“缩放”,
值:“z”
}, {
名称:“50%”,
值:“.5”
}, {
姓名:“75%”,
值:“.75”
}, {
名称:“100%”,
值:“1”
}, {
名称:“125%”,
值:“1.25”
}, {
名称:“150%”,
价值:“1.5”
}, {
名称:“175%”,
值:“1.75”
}, {
名称:“200%”,
值:“2”
}]
}),
searchAttr:“名称”
}“zoomDiv”);
filteringSelect.startup();
filteringSelect.watch('displayedValue',函数(属性、旧值、新值){
警报(属性+':'+新值);
});
});代码>
我尝试了一下你的代码。我发现您需要将filteringSelect
的创建和它的启动分开。如果它们是分开的,则可以正常工作(尽管由于明显的原因,值始终未定义)。虽然我不知道是什么原因导致DOJO网站上的示例出现这种情况,但它们只出现在一条语句中。我发现您需要将filteringSelect
的创建和它的启动分开。如果它们是分开的,则可以正常工作(尽管由于明显的原因,值始终未定义)。虽然我不知道是什么原因导致DOJO站点上的示例中出现了相同的情况,但它们都在一条语句中。