最近使用JQuery Easyui 碰到的几个奇怪问题
最近项目想尝试Easyui来做做前端界面,但是刚开始就碰到几个问题,记录下来,免得忘了。

1. 点击添加或修改按钮后,弹出窗体,窗体内容参加“href”属性远程加载
问题:第一次弹出窗体正常,但是再次点击按钮就无法弹出了。
原因:不详。。。
解决方法:在关闭窗体时销毁。
text: "取消", iconCls: 'icon-cancel', handler: function () { $("#opsDialog").dialog("close"); $("#opsDialog").dialog("destroy"); }
但是需要注意,销毁Dialog时会整个Dialog,所以在点击按钮初始化时要判断一下
if($("#opsDialog").length<=0)
{
$(".panel.datagrid").after("<div id='opsDialog'></div>");
}
2. 展开行显示详细信息,在点击添加或修改按钮后,弹出一个Dialog,但是关闭Dialog后,就再也无法展开行了。
原因:不详。。。。
解决方法:在窗体销毁后重新加载datagrid-detailview.js
onDestroy: function () {
$("#dg").datagrid("reload");
$.getScript("../easyui/datagrid-detailview.js", null);
}

3. 点击修改按钮,加载弹出窗体时,要让相关任务默认选中
问题:每次默认选中的行都主窗体的Datagrid的行,而不是弹出窗体上的Datagrid
原因:不同界面每个Dialog生成的行ID是“datagrid-row-r1-2-0”,“datagrid-row-r1-2-1”。。。。。而datagrid的checkRow或selectRow又是根据这些ID选中的
解决方法:修改源码,让不同datagrid生成的行ID不行,打开jquery.easyui.min.js(1.3.2版本),6738行,把
_496.rowIdPrefix="datagrid-row-r"+(++_45e);
改成:
_496.rowIdPrefix=_495.id+"-datagrid-row-r"+(++_45e);
4. 窗体加载完后,项目的下拉菜单不能下拉,要点好多次才出来
原因:先看下边生成的代码截图

注意z-index属性的值:window-shadow是9001,combo-p是10,一点击下位箭头combo-p的z-index的值会变为默认值9000,所以下拉菜单的下拉内容被遮住了,但是每点击两次,combo-p的z-index的值就会加1,所以要多点击几次,直到比9001大,才能看到下拉的内容。
解决方法:修改源码,打开jquery.easyui.min.js(1.3.2版本),9925行,把
_761.panel("panel").css("z-index",$.fn.window.defaults.zIndex++);
改成:
_761.panel("panel").css("z-index","10000");
以上问题的解决方法感觉有点头痛医头,脚痛医脚的感觉,不知会不会有什么后遗症,请慎用。
posted on 2013-12-30 15:29 Vincent Zheng 阅读(961) 评论(0) 收藏 举报
浙公网安备 33010602011771号