在我的网站上,我多次调用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不接受多次调用加载?
非常感谢
蝙蝠
答案 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组件