如何在JS代码中订阅dijit事件
How to subscribe an dijit event in the JS code?
我是Dojo框架的新手,尝试在代码中为ComboBox-Dijit订阅onChange事件。但由于某种原因,我的事件处理程序函数无法捕获此事件。你能帮我找出我错在哪里吗?
<div id="container" style="padding: 5px;">
<select data-dojo-type="dijit/form/ComboBox" name="state" id="stateInput">
<option>Apples</option>
<option selected>Oranges</option>
<option>Pears</option>
</select>
</div>
require([ 'dijit/form/ComboBox',
"dojo/on",
"dijit/registry"
], function(ComboBox, on,registry){
var comboBoxDigit2 = registry.byId("stateInput");
on(comboBoxDigit2,"onChange", function (e) {
alert("I am an alert box!");
});
});
代码在jsfiddle上。
谢谢,
Wei
这段代码中有一些错误。
-
require按相同的顺序传递数组。您当前正在将"dojo/on"answers"dijit/registrate"传递到ComboBox、on和registry中。您需要"dijit/form/Compobox"
-
数据dojo类型的格式应该是路径即
data-dojo-type="dijit/form/ComboBox"
-
on的格式通常是
on(element, eventname, function)
,尽管我相信你可以按照你现在的方式来做
编辑:
关于活动的工作ie
on(combobox, "change", function(value) {...});
您原来的fiddle并没有被解析为dijit,它只是一个普通的html选择,所以对注册表的调用失败了。我已经更新了小提琴。http://jsfiddle.net/vdmhU/13/
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 以编程方式创建的 Dijit.Editor 中的 onchange 事件
- 如何避免在为 dijit/form/TextBox 正确设置值时触发事件“更改”
- Dijit 1.7+ 小部件:如何将事件逻辑与现在分开
- 如何在dijit.form.NumberSpinner小部件上禁用鼠标滚轮事件
- 控制dijit.带有鼠标悬停事件的菜单栏
- Dijit Tree onClick事件渲染未定义
- Dijit事件在动态窗格中不起作用
- 为什么不能把事件处理程序放在Dijit小部件的类声明上呢?
- 如何在JS代码中订阅dijit事件
- dijit/form/FilteringSelect:如何手动触发onchange事件
- Dijit对话框按钮事件未执行