0

这是我的困境,我通过 ajax 将我的外部页面调用到 a<div>中,在其中<div>我有链接到父窗口的回调,它触发下一页的 ajax 加载事件。我的问题是回调将网站带到页面顶部。这是代码;

父窗口:

function Display_Load() {
            $("#loading").fadeIn(900,0);
            $("#loading").html("<img src='<?php echo $reg->get ('rel_addr'); ?>img/load.gif' height='50' width='50' />"); return false;
        }
        function Hide_Load() {
            $('#midback').fadeIn('slow');
            $("#loading").fadeOut('slow');
        }
        function loadContent(page) {
            var param = "";
            if (page) { param = page; } else { param='home'; }
            Display_Load();
            $('#midback').fadeOut('slow', function() { 
            $(this).load("<?php echo $reg->get ('rel_addr'); ?>"+param+".php",
            Hide_Load()); return false; 
        }); 

子窗口代码:

<span id="events" class="more">more events...</span> 
<script type="text/javascript">
            $(document).ready(function() {
                $('.more').click(function() {
                    var params = $(this).attr("id");
                    window.parent.loadContent(params);
                }); return false;
            });

我还想为<div>(关闭它然后重新打开它以纠正新页面的高度)的高度设置动画,但是首先我想解决这个问题。

4

1 回答 1

1

尝试将您对孩子的点击更改为:

$('.more').click(function(e) {
    e.preventDefault();
    // . . .
    return false;
});

请参阅http://api.jquery.com/event.preventDefault/

问题是当您单击更多类时,您可能会在 URL 的末尾附加一个# 。这会导致页面跳到顶部。根据文档, preventDefault 将阻止这种情况发生。为了更好地衡量,也可以从click函数返回 false。

于 2013-02-05T20:21:38.990 回答