使用easyui dialog 弹出框的一些注意事项

使用easy ui 的dialog弹出框制作后台管理系统时需要点击按钮弹出个新的弹出框,为了保持每次点击显示出来的数据都是重新渲染,从后台获取的,可以这样来写:
function piliangchuli(){
		$("
").dialog({ title: '批量处理', id:'batchProcessing', width: 920, height: 'auto', top:300, closed: false, inline:false, loadingMessage: '正在加载...', cache: false, href :'../business/customermanagement/customerRelations/BatchProcessing.jsp', modal: true, onClose : function() { $(this).dialog('destroy'); mmg.load(); }, }); }

可以使用onclick触发,然后$选择器里可以写成

,这样操作过后关闭弹出框后,再弹出来时就不会保留上次弹出时留下来的操作痕迹,会重新渲染出来。

因为用的是easyui框架,所以就导致点击左边菜单栏弹出右边的tab是用iframe标签写的,这样就导致了一个问题,那就是那些在dialog里的弹出框会只在当前父级的iframe页面里显示,超出tab页范围时会被iframe标签外的别的东西挡住,显示不出来,说的简单点就是dialog弹出框不在最上层显示。在网上找原因是因为iframe与外面的div不是一个层级的,属于跨域的问题了,所以可以用如下方法,使dialog在主页调用就可以了:

function batchProcessing(){
	parent.piliangchuli();
}

这是在子页面写的(即iframe框架里的页面里)。上面第一个写的调用dialog时是在主页面写的,这样就可以通过parent.function来沟通iframe和父页面的沟通,不会存在跨越问题了。

这样以后,本来以为问题都解决了,谁知道又出现问题了,因为虽然弹出框顺利的在主页面弹出来了(即最上层页面),但是那个dialog页面的js和css样式都失效了,又上度娘查了一圈才发现调出dialog框时只会弹出body标签里面的内容,head标签里的样式和js文件都不会被引入,所以只能把这些引入文件写入body标签里才管用。。。

这样折腾完后,终于发现js和css样式出来了,但是不亏是网一青铜段位的撸手,这手速,又发现了一个BUG,那就是第一次点击时,dialog弹出来了,数据什么的都很正常,但是当第二次点击时,就会报错$().dialog() is not a function,dialog也不会弹出来~~无奈只能再次求助度娘,果然度娘没叫我失望,说是由于主页已经引入了jauery文件,然后在dialog弹出框的body标签里又引入了jquery文件,把它删除了以后就好了~~

好了,目前使用easyui的dialog问题只有这么多,说不定会不定期更新~~

你可能感兴趣的:(web前端)