1

まず、現在使用しているバージョンは次のとおりです。

  • Chrome の修正を含む jqGrid 4.3.2 (jqGrid の「Oleg」によって投稿されたものは、Chrome/Chrome Frame で正しくレンダリングされません)。何らかの理由で、4.3.2 と 4.4.0 は、投稿で説明されているように幅の問題を解決しませんでした。この問題は、Chrome に加えて IE でも発生しました。

  • jQuery 1.7.2

  • jQuery UI 1.8.9

私が抱えている問題は、マウスをドラッグしてグリッド内の列の 1 つをサイズ変更しようとすると、マウス ボタンを放すとセパレーターの左側にあるヘッダーのクリック イベントがトリガーされるように見えることです。このイベントは行の並べ替えをトリガーするため、あまり適切ではありません。

これは IE (9) でのみ発生し、Firefox と Chrome では問題なく動作します。

jqgridで同じ問題を説明している人を他に見つけていないので、これは非常に奇妙だと思います.

誰かが私をここの方向に向けてくれることを願っています。

4

1 に答える 1

0

I did not find exactly what the root cause for my problem was, but managed to solved it by suspending the click handler in jqgrid for 10 milliseconds after the mouseup event on the column resize action. The click handler allready had a check for a variable called ts.p.disableClick, so I figured I might as well use this one. The only thing I needed to change was from this:

 $(document).mouseup(function () {
    if (grid.resizing) { grid.dragEnd(); return false;}
    return true;
 });

, to this:

 $(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;
 });

You may call this a hack, but suspending the click handler for just 10 ms should not affect the user in any way, so I think it should be safe.

Hopefully this could be helpful if someone encounters a similar problem.

于 2012-07-04T07:40:57.610 に答える