jquery函数load()无法正确加载dojo内容

时间:2011-08-30 12:26:52

标签: jquery dojo

在我的网站上,我多次调用jquery函数load()。

我们可以像这样sumarize:

1)在我的索引页面中调用此$('#mainFrame').load('/antoherPage.jsp');
 我将此代码插入索引页的头部:

<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css"/><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" djConfig="parseOnLoad: true,locale: 'en'"></scipt>

2)在我的另一个页面中,它调用此$('#main').load('/Form.jsp');

3)在'Form'中,我有一些来自dijit的字段:dijit.form.ValidationTextBox,...

<input  dojoType='dijit.form.ValidationTextBox'></input>

在我的索引页面中,我有这个:

基本上,如果我加载页面Form.jsp,则会正确显示所有内容。但是,当我加载我的索引页面时,每个都没有在表单中正确显示。

我想知道是否需要在表单页面或其他页面中编写一些特殊代码。也许dojo / dijit不接受多次调用加载?

非常感谢

蝙蝠

1 个答案:

答案 0 :(得分:1)

ajax加载页面后,您需要致电dojo.parser.parse()。 Dojo不知道您是通过ajax加载另一个页面,因此解析器不知道在标记中查看dijit小部件的新内容。

您还需要dojo.require('dojo.parser')

编辑:查看jquery加载文档,一个更全功能的例子是:

$('#main').load('/Form.jsp', function() {
//make sure we have the dojo.parser component pulled in, although it should probably be done in <head>
dojo.require('dojo.parser');
dojo.parser.parse();
});

与往常一样,应该在执行该ajax调用之前加载dojo.parser组件