首先,这些是我目前使用的版本:
jqGrid 4.3.2,修复了Chrome(由jqGrid does not render correctly in Chrome/Chrome Frame中的“Oleg”发布)。由于某种原因4.3.2和4.4.0没有解决我的宽度问题,如帖子中所述。除了Chrome之外,IE中还出现了这个问题。
jQuery 1.7.2
我遇到的问题是当我尝试通过拖动鼠标来调整网格中的一个列时,当我放开鼠标按钮时,似乎触发了分隔符左侧标题上的click事件。然后,此事件会触发行的重新排序,因此它不是很好。
它只发生在IE(9)中,它在Firefox和Chrome中运行良好。
我认为这很奇怪,因为我没有找到任何描述jqgrid相同问题的人,而且我认为我没有做任何可能会造成这种行为的“黑客”。
希望有人能指出我在这方向。
答案 0 :(得分:0)
我没有确切地找到问题的根本原因,但设法通过在列调整大小操作上的mouseup事件之后暂停jqgrid中的click处理程序10毫秒来解决它。点击处理程序已经检查了一个名为ts.p.disableClick的变量,所以我想我也可以使用这个。我唯一需要改变的是:
$(document).mouseup(function () {
if (grid.resizing) { grid.dragEnd(); return false;}
return true;
});
,对此:
$(document).mouseup(function () {
if (grid.resizing) {
// Disabling the click handler for 10 millisec.
ts.p.disableClick = true;
setTimeout(function() {
ts.p.disableClick = false;
}, 10);
grid.dragEnd(); return false;
}
return true;
});
您可以将其称为hack,但暂停点击处理程序仅10 ms不应以任何方式影响用户,因此我认为它应该是安全的。
希望如果有人遇到类似的问题,这可能会有所帮助。