我正在使用JQuery创建弹出菜单。这段代码已有几年的历史了,并且运行良好,但是最近我们移到了JQuery UI 1.12.4,它的工作方式似乎有所不同。
用于初始化弹出菜单的JS代码如下:
function initMenu( popupid, triggerId, dialogWidth, myPos, atPos ) {
$( '#' + popupid ).menu( { 'position': { my: myPos,
at: atPos,
of: $('#' + triggerId ),
collision: 'none' } } );
$( '#' + popupid + ' div.popupmenu_parent' ).css( 'width', dialogWidth );
$( '#' + popupid + ' div.popupmenu_parent ul' ).css( 'width', dialogWidth );
$( '#' + popupid + ' div.popupmenu_parent ul' ).css( 'text-align', 'left' );
$( '#' + popupid ).css( 'border', '0' );
$( '#' + popupid ).css( 'padding', '0' );
$( '#' + popupid ).css( 'width', '1px' );
$( '#' + popupid ).css( 'height', '1px' );
}
通常使用mypos ='left + 0 top + 0'和atpos ='left + 5 top + 5'调用initMenu函数
关于padding / width / height设置的最后一点是因为弹出菜单最初工作时具有讨厌的“父” div,我们不想要-我们只想要弹出窗口。 (不确定什么是“权利”是为了摆脱它,但这对我们有用)
此菜单用在几页的搜索结果表中,这些结果可能会占用比页面高度更多的内容,因此出现滚动条。结果的每一行都有自己的弹出菜单,用于上下文函数。
在升级之前,一切正常。现在,如果用户完全滚动,则弹出菜单会出现垂直偏移滚动量的情况。如果没有滚动,它将正常工作。用户滚动结果页面越深,菜单显示的越深。
还有其他人遇到过这个问题,他们如何解决?
谢谢。