【发布时间】:2011-08-17 20:10:42
【问题描述】:
我每次加载页面时都会调用这个 jQuery 方法,以调整主 div 的内容(可滚动):
function resizeMainContent() {
var newSize = jQuery(window).height();
if (window.location.pathname.indexOf("appsportfolio") != -1) {
newSize = newSize - 105;
} else if (window.location.pathname.indexOf("userapp") != -1) {
newSize = newSize - 128;
} else if (window.location.pathname.indexOf("password") != -1
|| window.location.pathname.indexOf("create_user") != -1
|| window.location.pathname.indexOf("create_account") != -1) {
newSize = newSize - 105;
}
if (jQuery.browser.msie)
newSize = newSize + 3;
jQuery("#mainContentPanel").height(newSize);
}
嗯,在 chrome 和 FF 上都很好用。但是,在 IE 上,如果调用此方法,当我在其他 div 上 右键单击 并显示弹出面板时,该面板不会完全呈现在我按下右键的位置,而是在下方大约 100 像素...如果我取消注释此 resizeMainContent 功能,右键单击效果很好...
您能提出解决方案吗?
谢谢。
更新:
- 这是问题的截图:我在第一个Text上按右键,弹出窗口出现在第二个
如果我评论上面的 jQuery 方法,它会出现在我按下右键的位置。
我按右键的 div 有这个生成的代码(实际上它使用了一个ice:menuPopupicefaces 组件)
oncontextmenu="Ice.Menu.contextMenuPopup(event, 'j_id1378:sectionContextMenu_sub', 'j_id1378:j_id1401:0:j_id1413:1:j_id1414');return false;"
所以它从他们的源代码中调用了一些可以正常工作的javascript方法(他们的演示工作完美)所以问题肯定不在他们的javascript代码中......
【问题讨论】:
-
能否也显示右键处理程序代码的代码?
-
您是说右键菜单偏移了 100px 还是灯箱样式的弹出窗口偏移了 100px?假设灯箱,定位是什么 - 相对、绝对、静态或固定?您何时决定将弹出窗口放置在何处 - 单击时或绘制页面时?
-
请将链接发布到完整重现问题的 jsfiddle sn-p。
-
我已经更新了我的帖子...使用 jsfiddle 很难重现它,并且该网站还没有上线...
-
我敢打赌 Ice 代码会在页面生成时生成其相对位置,而不是在点击时生成。当你调整它的大小时,然后使用旧的角位置并单击文本框内的 x-y 来定位上下文菜单。
标签: javascript jquery jsf