1

首先,这些是我目前使用的版本:

我遇到的问题是,当我尝试通过拖动鼠标来调整网格中一列的大小时,当我松开鼠标按钮时,它似乎触发了分隔符左侧标题上的单击事件。这个事件然后触发行的重新排序,所以它不是很好。

它只发生在 IE (9) 中,它在 Firefox 和 Chrome 中运行良好。

我认为这很奇怪,因为我没有找到其他任何人描述与 jqgrid 相同的问题,而且我认为我不会做任何可能导致这种行为的“黑客”。

希望有人可以在这里为我指明方向。

4

1 回答 1

0

我没有找到问题的根本原因是什么,但通过在列调整大小操作的 mouseup 事件后暂停 jqgrid 中的单击处理程序 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 毫秒不应该以任何方式影响用户,所以我认为它应该是安全的。

如果有人遇到类似的问题,希望这会有所帮助。

于 2012-07-04T07:40:57.610 回答