このバグは、Free jqGrid 4.9.0 でのみ発生しています (Free-jqGrid 4.8.0 に戻すと、すべて正常に動作します)。
jFiddleで再作成できなかったので、同じページに複数のグリッドがあることが原因である可能性があります(おそらく)。
不具合:
高度な検索ダイアログのスタイル 'top' と 'left' はどちらもデフォルトで 0px に設定されているため、ユーザーが検索ボタンをクリックすると、デフォルトでグリッドの左上に表示されます。
ここで、ダイアログを閉じて検索ボタンをもう一度クリックすると、「上」と「左」が何らかの形で再計算され、ダイアログが「上」の場合は -228.1875px、「左」の場合は -5px になります。 . 次にこのフローを繰り返すと、ダイアログが画面から消えました (-500px か何かになるため)。
これは、5 つのグリッドすべてで発生します。同じ動作。ダイアログは、再度開くたびにその位置を再計算し続けます。
この動作の原因となっている 4.9.0 の行を見つけるためにリバース エンジニアリングを開始しsavePositionOnHide
、ブロック内の関数 (jquery.jqgrid.src.js の行 9896)が原因であることがわかりました。this.data(propName, {
私が交換した場合:
top: top, //parseFloat($w.css("top")),
left: left, //parseFloat($w.css("left")),
と
top: getCssStyleOrFloat($w, "top"), //parseFloat($w.css("top")),
left: getCssStyleOrFloat($w, "left"), //parseFloat($w.css("left")),
4.8.0 からコピーしたもので、すべて正常に動作しています。
それで、これが本当にバグなのか、それとも私が見逃しているものなのか、疑問に思いました。
ありがとう、