如何在道场小部件上使用道场/行为
How to use dojo/behavior on dojo widget?
我阅读了这篇文章(使用 dojo.behavior),并希望将项目中的行为模块用作事件处理模块。
但是我有一个问题,对于 DOM 节点,它工作得很好,但我如何在 Dojo 小部件上使用它?
如果我使用 dojo/on 模块,我可以这样做:
var buttonNode = dijit.byId("myButton");
on(buttonNode, "onClick", buttonHandler);
或
dijit.byId("myButton").onClick = buttonHandler;
但是,如果我使用行为模块,
behavior.add({
"#myButton": {
onClick: buttonHandler
}
});
它不起作用。(当然,我在完成页面渲染后调用了 behavior.apply()。下面的代码也不起作用。
behavior.add({
"[widgetid='myButton']": {
onClick: buttonHandler
}
});
经过一番调查,我发现上面的代码不起作用的原因是因为按钮小部件由许多 s 和一个内部 .如果我使用 data-dojo-id 指定的 id,它将指向 a 而不是我希望事件绑定的 id。
我找到了一个可以摆脱这种情况的解决方案,
behavior.add({
"[widgetid='myButton'] input": {
onclick: buttonHandler
}
}
但是CSS选择器太复杂了,这取决于小部件的类型。
有没有一个好的解决方案可以在小部件上应用 dojo/行为,就像在 dom 节点上一样?
看起来你真正想要在小部件对象上挂接一个事件,但behavior
被设计为访问 DOM。所以,我认为你坚持你的解决方法。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 在输入字段中将最小金额设置为
- jQuery/Javascript.toggleClass/.classList.toggle的特殊行为
- 不同浏览器中的空白字符正则表达式行为
- delete关键字在全局变量上的不同行为
- 砌体不能填补小缺口
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 在不阻止默认行为的情况下检测IE10中的缩放
- 限制javascript变量的最小/最大整数
- HTML5在画布中加载较小的图像并保存实际大小的图像
- 防止默认锚点行为AngularJS
- JavaScript匿名函数行为
- 如果缩放为最大/最小,如何忽略d3.js缩放行为
- 如何在道场小部件上使用道场/行为
- 内联(非内联块)行为元素的最小宽度
- JQuery拖拽的小故障行为(包括小提琴)
- 如何覆盖FilteringSelect dojo小部件的onchange事件的默认行为
- Jquery UI滑块奇怪的行为,滑块值高于最小值,低于最大值
- 如何改变highcahrts的最小和最大选择行为