Dojo事件未触发
Dojo events not triggering
我有一个Dojo选项卡容器,当我单击某些按钮时,会动态添加一个新选项卡,其中包含通过Ajax下载的内容。选项卡包含动态表单元素,Dojo可以很好地解析和加载这些元素。我还包括特定于每个选项卡的Javascript块,这些块也可以通过Ajax下载…然而,没有一个Javascript块执行!
标签内容示例:
<input id="test" name="test" type="text" dojoType="dijit.form.ValidationTextBox" />
<script type="text/javascript">
dojo.connect(dijit.byId('test'), 'onClick', function(evt){
alert('testing 123');
});
</script>
但是,如果我这样做,事件就会触发:
<input id="test" name="test" type="text" dojoType="dijit.form.ValidationTextBox">
<script type="dojo/method" event='onClick'>
alert('testing 123');
</script>
</input>
我的问题是,为什么Javascript块在第一个例子工作?这是Dojo的限制吗?此外,我也试图设置属性和值的小部件后,他们已经加载。我如何积极,鉴于我必须使用像dojo.addOnLoad()
这样的东西,这不会起作用,因为它需要一个Javascript块,不按第一个例子工作…没有等效的小部件onLoad事件,所以我不能使用第二种方法…有什么好主意吗?
"tab content"实际上是一个 content Pane元素。你不能在内容面板内调用javascript,除非你使用<script type="dojo/method">
。至少这是我知道的。
更新:如果你使用dojox.layout.ContentPane
而不是dijit.layout.ContentPane
所有关于js里面的问题将消失。来自Dojo参考指南:
dojox.layout。contentpane是dijit.layout.ContentPane的扩展,提供脚本执行等功能。
看起来你需要使用dojo。挂起,这样当函数被实际调用时,它将在作用域中。尝试使用:
dojo.connect(dijit.byId('test'), 'onCLick', dojo.hitch(this, function(evt) {
alert('testing123');
}));
您可以在这里阅读更多信息:http://dojotoolkit.org/reference-guide/dojo/hitch.html#dojo-hitch
您必须确保首先解析了小部件。这样做:
dojo.addOnLoad(function(){/*connect code*/});
- 如何使用Dojo引用Google Maps事件中的包含类
- 向Dojo FilteringSelect添加onChange事件
- Dojo表单处理事件
- 使用dojo按键事件时无法避免最后一个字符输入
- 如何在 dojo.on 事件名称的选择器中使用 :not
- 将带有单击事件的超链接添加到 Dojo 网格
- 提交表单后未调用 OnDemandGrid Dojo dgrid-select 事件侦听器
- 有没有办法停止 dojo onBlur 事件处理程序中的所有其他事件
- 打开任何文本/文档文件进行编辑,使用Javascript/DOJO/或基于框架的点击事件和Java进行编辑
- Dojo 对话框关闭事件在 X 上(右上角)
- 使用dojo/javascript触发点击事件
- 可以't在自定义dojo小部件内分配onclick事件
- Dojo捕获自动完成的事件
- Dojo'中的按键事件;s在模块上
- dojo选择框,在选择时触发事件
- 隐藏字段上的Dojo Onchange事件
- 是否可以通过代码触发dojo特定的事件
- 如何为Dojo对话框运行onLoad事件
- Dojo日历:更改后,无法操作日历事件
- dojo/on事件类型列表