Dojo和ajax - 使用dojoType attr初始化html

时间:2010-12-19 23:01:51

标签: javascript jquery ajax dojo

我有一个页面,通过ajax加载页面的多个部分,即:

<body>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" 
     djConfig="parseOnLoad: true, isDebug:true"></script>
  <div class="load_when_user_clicks_here"></div>
  <div class="load_when_user_clicks_here"></div>
  <div class="load_when_user_clicks_here"></div>
</body>

然后我的javascript将用从服务器获取的html替换innerHTML。我已经能够得到jquery来处理这个并对加载的div进行更改,但是我遇到了Dojo在div上的问题。截至目前,Dojo第一次加载内容时没有问题。但是,当我调用使用ajax从服务器重新加载内容时,下面的dijit.InLineEditBox没有实例化。

以下是从服务器获取的html示例:

<script type="text/javascript">
  dojo.require("dijit.InlineEditBox");
  dojo.require("dijit.form.TextBox");
</script>
<span style="margin:30px;" dojoType="dijit.InlineEditBox" 
editor="dijit.form.TextBox">editable</span>

如何确保即使重新加载,浏览器也会实例化div?

1 个答案:

答案 0 :(得分:1)

我不确定我是否完全遵循了这个问题,但是如果您动态加载其中包含dojoType的内容,则需要在执行innerHTML分配后手动调用dojo.parser.parse()。您还可以查看使用dijit.TitlePane或ContentPane和href属性