我有一个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块,这不工作,根据第一个例子...没有等效的widget onLoad事件,所以我也不能使用第二个方法......有什么想法如何去做呢?
3条答案
按热度按时间ilmyapht1#
“tab content”实际上是一个 * ContentPane * 元素,除非使用
<script type="dojo/method">
,否则不能在内容窗格中调用javascript,至少我知道这一点。**更新:**如果你使用
dojox.layout.ContentPane
而不是dijit.layout.ContentPane
,那么所有关于js的问题都会消失。contenPane是dijit. layout. contentPane的扩展,提供脚本执行等功能。
50few1ms2#
看起来你需要使用dojo.hitch,这样你的函数在实际调用时才能在作用域中。
您可以在这里阅读更多信息:http://dojotoolkit.org/reference-guide/dojo/hitch.html#dojo-hitch
0lvr5msh3#
你必须确保小部件已经被解析过了。你可以这样做: