当前位置: 代码迷 >> Web前端 >> Easyui 1.2.4+jQuery1.6.4 Dialog控件cache属性失灵解决方案
  详细解决方案

Easyui 1.2.4+jQuery1.6.4 Dialog控件cache属性失灵解决方案

热度:208   发布时间:2012-09-02 21:00:34.0
Easyui 1.2.4+jQuery1.6.4 Dialog控件cache属性失效解决方案

环境:

?

easyui 1.2.4

jQuery 1.6.4

chrome

?

问题:

?

做项目中使用到easyui中的dialog,发现他的cache属性即使设置为false仍然还是不会发起服务端请求。

?

排查原因:

?

网上搜了下,无果,但搜到一个帖子

?

?

Mark ,easyUi缓存问题是执行顺序,('#dialog').html(data)先,再实例化('#dialog').dialog,而juqery dialog不会破坏#dialog'标签,easyUI会破坏标签,所以存在缓存问题

但是实在看不懂如何解决.

?

在调试中发现,使用easyui的dialog事件后你的dialog控件会“不见”,也就是下面代码中的#yourDialog整个DOM节点不见,easyui帮你自动生成一个。可能就是这里出问题。

?

?

<div style="display:none">
    <!-- 你的dialog控件-->
    <div id="#yourDialog" title="xxx"></div>
</div>

?

解决方法:

?

不想修改源码,想了想,可以通过以下方法解决:

?

?

$('#yourDialog').dialog({  
	    modal:true,
	    iconCls:"icon-add",
	    buttons:[{
			text:'提交',
			iconCls:'icon-ok',
			handler:function(){
				submitForm(appId, false);
			}
		},{
			text:'关闭',
			handler:function(){
				$('#yourDialog').dialog('close');
			}
		}],
		onOpen:function(){
			$('#createAppVersionDialog').dialog('refresh', 'yourUrl');
		}
	}); 

初始不提供href参数,监听onOpen事件,使用refresh参数使dialog读取服务端数据(refresh是panel的method)

?

  相关解决方案