0

これが私のジレンマです。外部ページをajax経由でに呼び出して<div><div>ます。親ウィンドウにコールバックするリンクがあり、次のページのajaxロードイベントをトリガーします。私の問題は、コールバックによってWebサイトがページの上部に表示されることです。これがコードです。

親ウィンドウ:

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/を参照してください。

問題は、 moreクラスをクリックすると、URL の末尾に#が追加される可能性があることです。これにより、ページが一番上にジャンプします。ドキュメントによると、 preventDefault はこれが起こらないようにします。適切な測定のために、クリック関数からも false を返します。

于 2013-02-05T20:21:38.990 に答える