jqGrid将焦点更改为页面顶部的元素

时间:2012-09-18 02:55:55

标签: javascript jquery jqgrid

当jqGrid变长时,我遇到了可编辑的jqGrid行为的问题。单击不可编辑的单元格并提交已编辑的单元格会将用户带到网格的顶部。随机点击会产生大量不可预测的结果。聚焦的元素设置为“top:-1000000px”。对此有什么好处?有没有办法覆盖此元素上的focus事件?

<script type="text/javascript">
function populateTable(table) {
    for(i = 0; i < 1000; i++) {
        table.addRowData(i, {key:'Lorem', value:'Ipsum'});
    }
}

$(document).ready(function() {
    $("#grid").jqGrid({
        datatype : "local",
        colNames : ["Key", "Value"],
        colModel: [
         {name:'key', index:'lever', width:500, editable: true},
         {name:'value', index:'defaultcpm', width: 100, editable: true},
        ],
        height: 'auto',
        cellEdit: true,
        cellSubmit: 'clientArray'
    });
    populateTable($("#grid"));
});
</script>
</head>
<body>
<table id="grid"></table>
</html>

编辑:我想我不够具体。我不想在编辑后改变焦点。以下代码修复了它,但如果任何非网格HTMLDivElement收到焦点事件,则会产生副作用。

HTMLDivElement.prototype.focus = function() {}

1 个答案:

答案 0 :(得分:1)

如果要设置焦点,colModel中的单元格应该是可编辑的。也尝试粘贴这个

代码中的

$("#grid").jqGrid('editCell', 1, 1, true);

将焦点放在第1行第1列