小弟最近在学习Jquery EasyUi,目前发现一个问题,不知道如果解决。
目前有两个页面,a.jsp 和 b.jsp 。其中a.jsp中只有一个下拉菜单,用浏览器单独访问a.jsp的时候,是可以正常显示的,请看a.jsp的部分代码:
[code="java"]
<br> jQuery(function($){<br> $('#cc').combogrid({<br> panelWidth:450,<br> value:'006',</p> <pre><code> idField:'code', textField:'name', url:'datagrid_data.json', columns:[[ {field:'code',title:'Code',width:60}, {field:'name',title:'Name',width:100}, {field:'addr',title:'Address',width:120}, {field:'col4',title:'Col41',width:100} ]] }); }); </script> </code></pre> <p><body><br> 下拉菜单:<select id="cc" name="dept" style="width:450px;"></select><br><br> </body><br> [/code]。</p> <pre><code>b.jsp中有一个window,window的href为a.jsp,在b.jsp中不能够正常显示a.jsp的下拉菜单,请看b.jsp中的部分代码: </code></pre> <p>[code="java"]</p> <pre><code><script type="text/javascript"> $(function(){ $('#win').window({ width:600, height:400, href:'a.jsp' }) }); </script> </code></pre> <p><body><br> <div id="win" iconCls="icon-save" title="My Window"><br> Window Content<br> </div><br> </body></p> <p>[/code]</p> <p>小弟查询之后,发现是b.jsp的window在显示a.jsp时,a.jsp中页面加载的时候调用的初始化语句块没有调用成功,具体的没有调用的a.jsp的代码为[code="java"]<br> jQuery(function($){<br> ........<br> })<br> [/code]<br> 不知道为什么会出现这种问题,难道一个页面被另一个页面用href引用之后就不能调用自身的初始化语句块了吗?</p>
太久没关注easyui了。。官方网站也打不开
easyui的window并不是iframe形式的,所以你的a.jsp中的$(function(){...})是无法被执行的,你可以将其写在window的onLoad事件里
[code="js"]
//去掉a.jsp中的js代码,转移到b.jsp里
$(function(){
$('#win').window({
width:600,
height:400,
href:'a.jsp',
//写在onLoad事件里
onLoad : function(){
$('#cc').combogrid({
panelWidth:450,
value:'006',
......
});
}
})
});
[/code]
关键是看你用什么方式来加载页面,是普通html片段还是iframe
如果是iframe就不需要放到b.jsp里