【发布时间】:2015-04-02 12:44:26
【问题描述】:
当我拖动编辑表单时,表单的位置无效。
它总是从位置(0,0) 开始到窗口。
它的位置与鼠标光标位置无关。
我该如何解决这个问题?
这些是我的代码。
<table id="jqGrid"></table>
<div id="jqGridPager"></div>
$("#jqGrid").jqGrid({
url: url,
mtype: "GET",
postData: data,
datatype: "jsonp",
colModel: [
{ label: 'd_id', name: 'd_id', width: 15, key: true, hidden: true},
{ label: 'driver', name: 'd_name', width: 30, align:"center", editable: true, editoptions: {size: 40} },
{ label: 'phone', name: 'd_phone', width: 30, align:"center", editable: true, editoptions: {size: 40} },
{ label: '', name: '' }
],
viewrecords: true,
autowidth: true,
height: '100%',
rownumbers: true,
rownumWidth: 25,
rowNum: 20,
editurl: g_base_url + 'driver/edit',
pager: "#jqGridPager",
loadError : function(xhr,st,err) {
},
loadComplete: function () {
},
onCellSelect: function(rowid, iCol, cellcontent, e) {
}
});
而我的jqgrid版本是4.8,jquery版本是jquery-1.11.2,jquery-ui版本是1.11.4。
请访问 jqgrid 演示并单击编辑按钮(页面栏中的“+”符号)并拖动编辑表单serveral times。你可以发现它的位置总是从 pos (0,0) 开始。
演示链接是http://www.guriddo.net/demo/guriddojs/edit_add_delete/edit_template/index.html
【问题讨论】:
-
可以试试free jqGrid是否存在同样的问题?您可以临时将使用
ui.jqgrid.css的URL 替换为http://cdn.jsdelivr.net/free-jqgrid/4.8.0/css/ui.jqgrid.css、grid.locale-en.js到http://cdn.jsdelivr.net/free-jqgrid/4.8.0/js/i18n/grid.locale-en.js(在免费jqGrid 中是可选的)和http://cdn.jsdelivr.net/free-jqgrid/4.8.0/js/jquery.jqgrid.min.js(或jquery.jqgrid.src.js)作为主要代码。 readme末尾的demo没有问题。 -
顺便说一下空名的用法:
name: ''是错误的! -
我用cdn试过了。但是叠加层放在对话框上,所以我不能选择对话框。我在开发者工具中手动将覆盖z-index从
949更改为0,然后拖动就正确了。为什么覆盖层放在最上面?对话框的 Z-index 为 950,但它位于覆盖遮罩层的后面。 -
我更改为
http://rawgit.com/free-jqgrid/jqGrid/master/css/ui.jqgrid.css,http://rawgit.com/free-jqgrid/jqGrid/master/js/jquery.jqgrid.src.js。但同样的问题。覆盖元素位于<body>元素的正下方。但是"edit dialog"元素被放置在 div 元素下。因为 jqgrid 是放在 div 元素下面的。这些是生成的 html 代码。
标签: javascript jquery jquery-ui jqgrid jquery-ui-draggable