Javascript Dijit事件在动态窗格中不起作用
有人能告诉我为什么这些都不管用吗 编辑 (万一链接出现问题,这个问题是关于如何在加载到dijit窗格的页面中不触发事件。这适用于Firefox 6.0.2、Crome 12.0.742.100和Opera 11.00.1156)Javascript Dijit事件在动态窗格中不起作用,javascript,dojo,dijit.form,Javascript,Dojo,Dijit.form,有人能告诉我为什么这些都不管用吗 编辑 (万一链接出现问题,这个问题是关于如何在加载到dijit窗格的页面中不触发事件。这适用于Firefox 6.0.2、Crome 12.0.742.100和Opera 11.00.1156) dojo.addOnLoad(函数(){ dijit.byId(“mainSettings”).set(“href”、“index2.html”); }); 开/关 日期 数 正文 警报(“变更”); 开/关 日期 数 正文 警报(“变更1”); 变化2 警报(“变更
dojo.addOnLoad(函数(){
dijit.byId(“mainSettings”).set(“href”、“index2.html”);
});
开/关
日期
数
正文
警报(“变更”);
开/关
日期
数
正文
警报(“变更1”);
变化2
警报(“变更2”);
dojo.addOnLoad(函数(){
connect(dijit.byId('button2'),'onClick',function(){
警报(“变更3”);
});
});
按钮2
编辑
Dojango代码:
#forms.py
type = CharField(widget=Select(choices=VARIABLE_CHOICES,attrs={'onChange':'letterVariableTypeSelectChange'}))
#template
{{ form.type }}
<script>
function letterVariableTypeSelectChange(){
alert("dave");
}
</script>
#forms.py
type=CharField(widget=Select(choices=VARIABLE_choices,attrs={'onChange':'letterVariableTypeSelectChange'}))
#模板
{{form.type}
函数letterVariableTypeSelectChange(){
警惕(“戴夫”);
}
尝试在dojox.layout.ContentPane上将executeScripts
和parseOnLoad
属性设置为true
<div id="main" dojoType="dijit.layout.BorderContainer">
<div dojoType="dojox.layout.ContentPane" executeScripts="true" parseOnLoad="true" splitter="false" id="mainSettings" region="center"></div>
</div>
在如何使用dojo/method方面,似乎也存在着根本性的差异
标记应该位于它们所覆盖的元素内部
请注意您的代码段是如何定义的:
<select dojoType="dijit.form.Select">
<option value="bool">On/Off</option>
<option value="date">Date</option>
<option value="float">Number</option>
<option value="text">Text</option>
<!--Script tag inside widget node, event is the name of the event to override -->
<script type="dojo/method" event="onChange">
alert("change");
</script>
</select>
开/关
日期
数
正文
警报(“变更”);
与那些不起作用的相比:
<!--onChange here is specified directly on the widget (which is incorrect), should be in the
<script type="dojo/method" event="OnChange">
-->
<select dojoType="dijit.form.Select" onChange="change1">
<option value="bool">On/Off</option>
<option value="date">Date</option>
<option value="float">Number</option>
<option value="text">Text</option>
</select>
<!--script tag outside the select. event refers to a nonexistent event for the widget.-->
<script type="dojo/method" event="change1">
alert("change1");
</script>
开/关
日期
数
正文
警报(“变更1”);
您可以在给定小部件的参考文档中获得可用事件的列表,您可以使用dojo/method覆盖这些事件
否决这篇文章的人能给出理由吗?我猜你被否决是因为StackOverflow不是众源调试器。一篇简单地说“为什么这不起作用”的帖子没有显示出太多的努力。感谢
executeScripts=“true”parseOnLoad=“true”
我不知道这一点,我已经将代码附加到页面上的dojox.layout.ContentPane
,但没有任何效果:(我想知道您是否可以将
放在输入字段之外,因为我使用的是dojango,无法将它们放在里面(django为您声明小部件,如果您自己声明,django将不会填充它)你能用相关的dojango代码更新你的问题吗?我剪切并粘贴了dojango代码,但我担心我的问题更系统化。如果我剪切并通过dojango生成的html到一个简单的页面,它就会工作。如果我剪切并通过带有的html到一个简单页面,错误是let未定义terVariableTypeSelectChange
。生成的代码是:开/关日期数字文本函数aaa(){alert(“dave”);}
ContentPane
s是一个dijit.layout.ContentPane
而不是一个dojox.layout.ContentPane
。这可能解决了我的dojango问题,但我不知道为什么有些事件会在静态页面而不是动态页面中触发
<!--onChange here is specified directly on the widget (which is incorrect), should be in the
<script type="dojo/method" event="OnChange">
-->
<select dojoType="dijit.form.Select" onChange="change1">
<option value="bool">On/Off</option>
<option value="date">Date</option>
<option value="float">Number</option>
<option value="text">Text</option>
</select>
<!--script tag outside the select. event refers to a nonexistent event for the widget.-->
<script type="dojo/method" event="change1">
alert("change1");
</script>