国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript 模擬JQuery的Ready方法實現并出現的問題

2024-05-06 14:12:33
字體:
來源:轉載
供稿:網友
dom加載完后執行,一直不了解,基于對網上的一些方法邏輯不了解,所以去看了《jquery源代碼研究(ready函數) 》這篇文章后自己寫入如下代碼(已有詳細說明)
代碼如下:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>document.ready</title>
<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript">
var Darren;
(function(){
var isReady=false; //是否已經加載完畢
var readBound=false; //判斷是否已經調用過循環事件
var readylist=[]; //把需要執行的方法先暫存在這個數組里
//判斷瀏覽器,該方法來自Cloudgamer JavaScript Library v0.1
var Browser = (function(ua){
var b = {
msie: /msie/.test(ua) && !/opera/.test(ua),
opera: /opera/.test(ua),
safari: /webkit/.test(ua) && !/chrome/.test(ua),
firefox: /firefox/.test(ua),
chrome: /chrome/.test(ua)
};
var vMark = "";
for (var i in b) {
if (b[i]) {
vMark = i;
}
}
if (b.safari) {
vMark = "version";
}
b.version = RegExp("(?:" + vMark + ")[///: ]([//d.]+)").test(ua) ? RegExp.$1 : "0";
b.ie = b.msie;
b.ie6 = b.msie && parseInt(b.version) == 6;
b.ie7 = b.msie && parseInt(b.version) == 7;
b.ie8 = b.msie && parseInt(b.version) == 8;
return b;
})(window.navigator.userAgent.toLowerCase());
function bindReady()
{
if(readBound){ //保證bindReady方法只執行一遍
return;
}
readBound=true;
//For IE并且不是嵌套在frame中
if (Browser.msie && window==top)
{
(function(){
if (isReady) {
return;
}
try {
document.documentElement.doScroll("left"); //如果沒加載dom完畢這個會報錯
}
catch (error) {
setTimeout(arguments.callee, 0); //循環調用父函數,也就是ready方法
return;
}
Test.Done();
})();
}else if(Browser.firefox)//For FF
{
document.addEventListener( "DOMContentLoaded", Test.Done, false );
}
}
var Test={
ready:function(fn){
bindReady();//判斷是否加載完畢
if(isReady)
{
fn.call(document); //加載完畢,直接調用
}else{
readylist.push(fn);//如果還沒加載完成則將該方法暫存到readylist數組中,以便以后調用
}
return this;
}
};
//靜態方法:加載完畢執行
Test.Done=function(){
if (!isReady) {
isReady=true;
}
readylist[0].call(document);
}
Darren=Test;
})();
//測試
Darren.ready(function(){
alert("my");
document.getElementById("test").innerHTML="haha" //成功讀取dom
});
$(function(){alert("jq")});
window.onload=function(){alert("default")}
</script>
</head>
<body>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 五原县| 龙南县| 大同市| 怀安县| 苍山县| 永嘉县| 石阡县| 庆城县| 泸州市| 沙雅县| 原阳县| 图木舒克市| 东阿县| 浑源县| 迭部县| 桃园市| 鄢陵县| 新营市| 泗洪县| 富锦市| 尼勒克县| 射洪县| 三亚市| 桐乡市| 郸城县| 富宁县| 雷波县| 故城县| 于都县| 公主岭市| 凯里市| 曲周县| 邢台县| 永平县| 许昌县| 永宁县| 建昌县| 东海县| 崇左市| 积石山| 东光县|