jQuery弹出窗口滚动

时间:2011-03-18 14:55:45

标签: jquery

要求相当简单,我需要在点击用户点击的表格中的链接时显示弹出窗口(X和Y坐标)。用户可以从网页上的列表中添加表格。

当用户第一次点击链接时,弹出窗口确实显示在正确的位置,但窗口滚动到底部(焦点移动到底部),并且在桌子下方创建了大量额外空间。这很烦人,因为现在用户必须向上滚动才能看到表格和弹出窗口。有趣的是,这只发生在IE(版本7.0)上。我用Firefox测试过,它运行得很好。

任何帮助都应该受到赞赏。

由于 KUNAL

2 个答案:

答案 0 :(得分:1)

听起来你有一个锚链接(例如#footer)并且它跳到那个(注意我给的例子会跳转到它,因为它会使用任何ID作为锚点。)

您应该在javascript事件上调用.preventDefault()。例如(jQuery):

$('a').click(function(e) {
    e.preventDefault();
    //other code...
});

有关评论的代码:

//get current position
var event = getEvent ( ffEvent );
event.preventDefault();
jQuery("#"+oMatrixModel.m_sPortletNameSpace+"popupDiv").dialog({
 position: [event.clientX,event.clientY], modal: true,
 resizable:false , height: 'auto', dialogClass: 'alert'
 });

答案 1 :(得分:1)

球员, 我终于搞定了,它实际上是一个CSS问题。我将以下代码段添加到我的应用程序使用的CSS中,并且一切正常:

.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
.ui-draggable .ui-dialog-titlebar { cursor: move; }