页面加载完成有两种事件:
区别一:
一是
ready
,表示文档结构已经加载完成(不包含图片等非文字媒体文件);
二是
onload
,指示页面包含图片等文件在内的所有元素都加载完成。
$(document).ready(function(){})在页面写几次就执行几次ready方法;
onload方法,页面加载一次仅且执行一次;
jQuery
中的
read
y
方法
实现了当页面
加载
完成后才执行的效果,但他并不是[removed]或者doucment.onload的封装,而是使用 标准W3C浏览器DOM隐藏api和IE浏览器缺陷来完成的,首先,我们来看
jQuery
的代码
代码如下:
DOMContentLoaded = function()
//取消事件监听,执行
read
y
方法
if ( document.addEventListener )
document.removeEventListener( “DOMContentLoaded”,
如题,使用了easyui的lay-out控件时,写在region区域中的$(document).
read
y();会被调用
两次
。
解决办法的话……只有加一个全局变量,然后每次
read
y时都加1……
特别简单的首页welcomepage,在debug的时候发现$(document).
read
y() 总是执行
两次
,第一次看起来像是创建了一个临时文件执行的,第二次才在真正的index.js里执行,很是困惑。
Google之后发现原因是index.js被引用了
两次
,于是回去查代码,果然:
<!-- Constants -->
<script src="./i...
正在学习
JQUERY
遇到个奇葩的问题,.
read
y()事件会执行
两次
。连续输出两个"Helo Word"。
$(document).
read
y(function () {
if (!loaded) {
$("div").html("Hello Word!");
ASP.net MVC 做了个工程,不知道为什么Search按就总是执行
两次
。 页面大概是这样的,一个Partial View,而这个View包含了一小段绑定Search的Javascript,并且用
Jquery
-ui 的dialog 包含,而且确定不是ASP.net mvc生成HTML的问题,HTML是依照我的想法生成的,后来实在没有办法,把dialog的代码去掉,Search按就正常了。查了一下dialog的代码,发现 是appendTo引发的。 做了实验,代码如下
jqm只有通过ajax
加载
的页面才只执行一次
read
y(正常情况)
页面刷新(同非ajax
加载
的页面)都会执行
两次
read
y,包括pageinit和pageshow事件也是如此。
两种避免的
方法
是:
1、不要用ajax
加载
如<a data-ajax="false">
2、在
read
y函数外定义全局变量,记录是否已经初始化。
出现
加载
两次
的原因:
使用apend...
ASP.net MVC 做了个工程,不知道为什么Search按就总是执行
两次
。页面大概是这样的,一个Partial View,而这个View包含了一小段绑定Search的Javascript,并且用
Jquery
-ui 的dialog 包含,而且确定不是ASP.net mvc生成HTML的问题,HTML是依照我的想法生成的,后来实在没有办法,把dialog的代码去掉,Search按就正常了。查了一下...