Эта ошибка возникает только на Free jqGrid 4.9.0 (когда я переключаюсь обратно на Free-jqGrid 4.8.0, все работает хорошо).
Я не смог воссоздать его на jFiddle, так что это может быть связано с тем, что у меня есть несколько сеток на одной странице (возможно).
Ошибка:
В диалоговом окне расширенного поиска их стиль «сверху» и «слева» по умолчанию равен 0px, так что они появляются по умолчанию в верхнем левом углу сетки, когда пользователь нажимает кнопку поиска.
Теперь, если вы закроете диалоговое окно и снова нажмете кнопку поиска, «верхний» и «левый» каким-то образом пересчитываются, и диалоговое окно увеличится на -228,1875 пикселей для «верхнего» и -5 пикселей для «левого». . в следующий раз, когда я повторю этот поток, диалоговое окно просто исчезнет с экрана (потому что оно получает -500 пикселей или что-то в этом роде).
Это происходит на всех моих 5 сетках. Такое же поведение. диалог продолжает пересчитывать свою позицию при каждом повторном открытии.
Я начал заниматься реверс-инжинирингом, чтобы выяснить, где те строки в 4.9.0, которые вызывают такое поведение, и выяснил, что это связано с функцией savePositionOnHide
(строка 9896 в jquery.jqgrid.src.js) внутри блока: 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, все работает хорошо.
Поэтому мне просто стало интересно, действительно ли это ошибка или что-то еще, что я упускаю.
Спасибо,
position: absolute
. Изменения из 4.9.0 работали правильно во всех моих тестах, но нельзя использовать все возможные тестовые случаи причины. - person Oleg   schedule 24.06.2015jqModal
,modal
,toTop
диалогового окна поиска, или вы установили некоторые свойства$.jgrid.jqModal
(toTop: false
или что-то в этом роде). Можно использовать опциюrecreateFilter: true
, чтобы игнорировать ранее сохраненную позицию. Это обязательно решит проблему, но мне было бы интересно локализовать тестовый случай, когда код 4.9.0 работает некорректно. Нужно просто иметь демо, которое воспроизводит код и отлаживать код, чтобы найти причину. - person Oleg   schedule 25.06.2015