0

我不明白为什么这个脚本在 Firefox 中不起作用。而且,即使我的ajax_loadmore.php 输出为 FALSE,它仍然会进行 AJAX 调用(在 Chrome 中)。

var request;
$(window).scroll(function () {
   if ($(window).scrollTop() == $(document).height() - $(window).height() ) {
      var ID = $('.stbody:last').attr('id').match(/stbody(\d+)/)[1];
      $('#loader').show();

      if(request) {
        return
      }
      request = $.ajax({
        type: 'GET',
        url: "ajax_loadmore.php?lCom="+ID,
        success: function(result) {
            if(result!='FALSE') {
                $('#loader').hide();
                $('#moreComments').append(result);
                $(".oembed").oembed(null, {
                    embedMethod: "fill",
                    maxWidth: 700,
                    maxHeight: 600
                });
                request = null;
            } else {
                $('#loader').hide();
                $('#moreComments').html('<center><p>Slut på inlägg</p></center>');
                request = null;
            }
        }
      }); 
   }
});

ajax_loadmore.php代码:

<?php
if($_GET['lCom']) {
  include_once 'core/init.php';
  protect_page();
  include_once 'includes/db.php';
  include_once 'includes/functions.php';
  include_once 'includes/tolink.php';
  include_once 'includes/time_stamp.php';
  include_once 'session.php';

  $lCom = $_GET['lCom'];
  $Wall = new Wall_Updates();
  $updatesarray=$Wall->Updates_more($uid,$lCom);
  if(!empty($updatesarray)) {

    foreach($updatesarray as $data) {
      $msg_id=$data['msg_id'];
      $orimessage=$data['message'];
      $message=tolink(htmlspecialchars(nl2br($data['message'])));
      $time=$data['created'];
      $username=$data['username'];
      $uid=$data['uid_fk'];
      $face=get_profile_pic($uid,'small');
      $face2=get_profile_pic($session_user_id,'mini'); 
      $commentsarray=$Wall->Comments($msg_id);
      ?>

        //HTMLSTUFF HERE.. 

      <?php
      }
  } else { echo 'FALSE'; }
} else { die('du ska inte vara här..'); }

?>
4

2 回答 2

0

它现在似乎起作用了。当它到达顶部时,我使用 jQuery 在我的菜单中添加一个粘性类。并且那个菜单有 position: relative 可能与窗口的高度或其他东西混淆,因此 Firefox 没有执行脚本,因为它没有到达底部。

当我将菜单容器上的 position: relative 更改为 position: absolute 时,它​​就起作用了。

如果有人可以更详细地解释为什么这样做,我会很高兴!(因为它在 Chrome 和 IE 中工作,我猜它在 Firefox 中存在渲染问题)

感谢您的回复!

于 2012-07-12T10:56:57.310 回答
0

我也遇到了同样的问题,我使用了以下链接中的脚本:

http://www.9lessons.info/2009/07/load-data-while-scroll-with-jquery-php.html

于 2012-07-10T17:03:31.470 回答