遇到一个这样的问题:

  有个项目做的好好的,测试时一步一步小心过来,做了一段时间后,发现前面的完成的功能出了问题了

  首先描述下出问题的功能:

做滚动条下拉加载的时候用的网上找的一种方法

$(window).scroll(function(){
if($(document).scrollTop()>=$(document).height()-$(window).height()){
   alert("aa");
}
});   

当我们出现滚动条时,把滚动条下拉就可以产生事件,这样我们就可以在事件中添加需要加载的网页内容,许多网站都是这样做用来节省图片服务器压力。

但今天做着做着发现在ie上面运行正常,在google和火狐上面跑就不正常了。因为一直用的ie测试的,所以,不知道当时改了哪里会引出这个错误,错误出现情况如下

正常情况是

当滚动条到底部时,才触发事件,我这样就可以加载我所需要的内容了,因为$(document).scrollTop()>=$(document).height()-$(window).height()的意思是当滚动条高度大于窗口高度时-文档高度时,就触发该事件,所有就看到了上图所示的效果!

但后面出现错误的情况是:

无论滚动条怎么动都会触发这个事件

后面打印出这两个值:发现这个$(document).height()  和 $(window).height() 这两个值在 google 和 firefox里的值竟然是一样的,在ie中却又不同,也就是不管滚动条怎么动,这个判断条件始终成立,所以出现了ie上没事,其他浏览器出现不正确的情况。

解决办法:

如果你和我一样都是改了这个才出了问题,那么就是这个原因了

我是改了

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

改成了

<html lang='zh-CN' xml:lang='zh-CN' xmlns='http://www.w3.org/1999/xhtml'>

最后改回来,这个问题就解决了

也就是$(window).height()的值正常了,真是坑爹的问题

ps:我是一个喜欢按照自己风格来写代码,不管是前台还是后台,尽量做到能代码备份,当某天无意改了代码,当时可能没发现问题。当某天出了问题了,能回退到前面某一个时间点的代码,那便可以查找一些问题,像我今天遇到的这种问题,也不是没有其他解决办法。我的解决办法就是回退到以前的代码,因为我记得以前这块是没问题的,所有仔细核对后才发现是改了这个头部信息

关于这种工具我现在只知道eclipse的 show local history!这个功能在每保存一次的时候就备份一次,功能非常强大,是保存在本地机器上面的

随机推荐

  1. SQL Server日志文件庞大收缩方法(实测好用)

    原文:SQL Server日志文件庞大收缩方法(实测好用) 这两个命令连续执行,间隔时间越少越明显(可多次运行),直到达到效果 --截断 BACKUP LOG CloudMonitor TO DISK ...

  2. 去掉UITableView HeaderView或FooterView随tableView 移动的黏性

    去掉UITableView HeaderView或FooterView随tableView 移动的黏性(sticky) 控制器中实现以下方法即可: - (void)scrollViewDidScrol ...

  3. BestCoder Round #11 (Div. 2) 题解

    HDOJ5054 Alice and Bob Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  4. MVC5+EF6 入门

    MVC5+EF6 入门完整教程九   前一阵子临时有事,这篇文章发布间隔比较长,我们先回顾下之前的内容,每篇文章用一句话总结重点. 文章一 MVC核心概念简介,一个基本MVC项目结构 文章二 通过开发 ...

  5. IOS开发中怎样验证邮箱的合法性

    IOS开发中怎样验证邮箱的合法性 文章参考:http://www.codes51.com/article/detail_94157.html 代码: - (void)viewDidLoad { [su ...

  6. 错 &#39;Cannot run program &quot;/home/uv/IDE/adt/sdk/platform-tools/adb&quot;: error=2, No such file or directory

    为linux平台搭建android开发环境的人,您可能会遇到问题,如下面有: 64位置linux安装64位置eclipse和64位置jdk开场后eclipse错误后 ""Canno ...

  7. Lightdm:奔跑吧GUI[已解决]

    Fedora替换gdm为lightdm解决无法登陆问题 前两天安装Codeblocks,这货安装了很多包和依赖,直接导致我重启进步去界面,卡在fedora LOGO处,如下 实在忧伤,已经因为折腾不知 ...

  8. JavaScript语言基础知识8

    这篇文章是对前面学习的知识进行总结: 1.JavaScript支持多种数据类型,如数值类型.字符串类型.布尔类型等. 2.在JavaScript中,字符串是用引號括起来的字符系列,转义字符能够用来表示 ...

  9. How To : Create SQL Server Management Studio Addin

    原文 How To : Create SQL Server Management Studio Addin Read the full and original article from Jon Sa ...

  10. 根据Eclipse SVN changelog使用ANT自动打增量包

    1.获取changeLog 用eclipseSVN的插件功能查看history. 将日志文件导出到本地文件svn_change.log,格式如下 r63 | xiaodaoshi | 2014-08- ...