- 浏览: 483711 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (301)
- Swing技术 (1)
- Linux (1)
- Javascript (22)
- 数据结构和算法 (3)
- J2SE (36)
- workflow (5)
- 设计模式 (14)
- web service (19)
- Ajax (14)
- 中间件 & 服务器 (8)
- 多线程 (9)
- Oracle (52)
- sys & soft (10)
- JMS (3)
- sso (9)
- android (11)
- struts2 (10)
- web协议 (2)
- 分布式 (2)
- PM (2)
- OLAP (3)
- Redis (2)
- Hibernate (7)
- ibatis (2)
- SQLServer (1)
- maven (3)
- Spring (7)
- Jsp (2)
- slf4j (1)
- jQuery (15)
- 权限 (1)
- 系统集成 (1)
- 笔记 (1)
- Freemarker (2)
- 项目管理 (1)
- eclipse (3)
- GIS (1)
- NoSql (3)
- win10 (1)
- win10网络 (2)
- 底层 (3)
- 数据库 (0)
最新评论
-
kabuto_v:
请问那种图,uml图是怎么画出来的呢?是您自己手工画的,还是有 ...
FastJSON 序列化、反序列化实现 -
梦行Monxin商城系统:
电商实例、业务并发、网站并发及解决方法 -
rockethj8:
client 㓟有一个参数是可以忽略一些URL 不进行验证登录 ...
SSO 之 (单点登录)实施中遇到的几个问题 -
mengxiangfeiyan:
好啊。。。。。
Oracle删除表,删除数据以及恢复数据、利用现有表创建新表
http://www.cnblogs.com/rubylouvre/archive/2009/12/30/1635645.html
基本上每个库都有这东西,因为如果要对页面上的元素进行操作,我们必须等到页面加载了这个元素才行,否则会报错,但是我们很能判定某个元素是否已加载,但我们可以判定页面是否加载,这就是我们经常把代码放到window.onload = function(){}之中的缘由。但window.onload事件是待到页面上的所有资源被加载才激活,如果页面上有许多图片,音乐或falsh,而我们要操作的元素在的它们的下方呢?因此,W3C做了少有几桩好事,搞了DOMContentLoaded与addEventListener,可能也不是他们搞的,把某浏览器的私有实现盖上个大印,标明它是标准罢了,如safari的canvas,IE的getBoundingClientRect……DOMContentLoaded是DOM树完成时激活的事件,addEventListener支持多重加载与冒泡捕获。IE没有这东西,我在《javascript的事件加载》基本给出它的雏形了(注:昨天重写了该文),本文将在它的基础上进行进一步的封装与改进,如setTimeout改为零秒延迟,清除setTimeout,执行完加载后把加载函数清除掉,对IE框架结构的页面进行更安全的设置……最重要的是修正下面网友 wbkt2t 提到的在IE中的失误!。晚上再次更新,发现doScroll并没有想象中的快,比不上script defer……
IE6的数据:
IE8的数据:
综合执行顺序为:
oncontentready,这时DOM树完成
script defer,这时开始执行设定了defer属性的script
ondocumentready complete,这时可以使用HTC组件与XHR
html.doScroll 这时可以让HTML元素使用doScroll方法
window.onload 这时图片flash等资源都加载完毕
new function(){
dom = [];
dom.isReady = false;
dom.isFunction = function(obj){
return Object.prototype.toString.call(obj) === "[object Function]";
}
dom.Ready = function(fn){
dom.initReady();//如果没有建成DOM树,则走第二步,存储起来一起杀
if(dom.isFunction(fn)){
if(dom.isReady){
fn();//如果已经建成DOM,则来一个杀一个
}else{
dom.push(fn);//存储加载事件
}
}
}
dom.fireReady =function(){
if (dom.isReady) return;
dom.isReady = true;
for(var i=0,n=dom.length;i<n;i++){
var fn = dom[i];
fn();
}
dom.length = 0;//清空事件
}
dom.initReady = function(){
if (document.addEventListener) {
document.addEventListener( "DOMContentLoaded", function(){
document.removeEventListener( "DOMContentLoaded", arguments.callee, false );//清除加载函数
dom.fireReady();
}, false );
}else{
if (document.getElementById) {
document.write("<script id=\"ie-domReady\" defer='defer'src=\"//:\"><\/script>");
document.getElementById("ie-domReady").onreadystatechange = function() {
if (this.readyState === "complete") {
dom.fireReady();
this.onreadystatechange = null;
this.parentNode.removeChild(this)
}
};
}
}
}
}
使用方法:
dom.Ready(function(){
alert("我的domReady!")
});
dom.Ready(function(){
alert("我的domReady测试多重加载1!")
});
dom.Ready(function(){
alert("我的domReady测试多重加载2!")
});
dom.Ready(function(){
alert(document.getElementById("test").innerHTML)
});
具体完整的代码:
<!doctype html> <html dir="ltr" lang="zh-CN"> <head id="head"> <meta charset="utf-8"/> <title>jQuery的domReady </title> <script type="text/javascript"> new function(){ dom = []; dom.isReady = false; dom.isFunction = function(obj){ return Object.prototype.toString.call(obj) === "[object Function]"; } dom.Ready = function(fn){ dom.initReady();//如果没有建成DOM树,则走第二步,存储起来一起杀 if(dom.isFunction(fn)){ if(dom.isReady){ fn();//如果已经建成DOM,则来一个杀一个 }else{ dom.push(fn);//存储加载事件 } } } dom.fireReady =function(){ if (dom.isReady) return; dom.isReady = true; for(var i=0,n=dom.length;i<n;i++){ var fn = dom[i]; fn(); } dom.length = 0;//清空事件 } dom.initReady = function(){ if (document.addEventListener) { document.addEventListener( "DOMContentLoaded", function(){ document.removeEventListener( "DOMContentLoaded", arguments.callee, false );//清除加载函数 dom.fireReady(); }, false ); }else{ if (document.getElementById) { document.write("<script id=\"ie-domReady\" defer='defer'src=\"//:\"><\/script>"); document.getElementById("ie-domReady").onreadystatechange = function() { if (this.readyState === "complete") { dom.fireReady(); this.onreadystatechange = null; this.parentNode.removeChild(this) } }; } } } } dom.Ready(function(){ alert("我的domReady!") }); dom.Ready(function(){ alert("我的domReady测试多重加载1!") }); dom.Ready(function(){ alert("我的domReady测试多重加载2!") }); dom.Ready(function(){ alert(document.getElementById("test").innerHTML) }); window.onload = function(){ alert("这是onload事件!") }; </script> </head> <body> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s005.jpg" alt="图片1" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s006.jpg" alt="图片2" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s007.jpg" alt="图片3" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s008.jpg" alt="图片4" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s009.jpg" alt="图片5" /> <table class="filament_table" cellspacing="0" width="700" rules="cols" > <col class="grey" width="25%"></col> <col class="yellow"></col> <thead> <tr> <th> 参数 </th> <th> 描述 </th> </tr> </thead> <tbody> <tr> <td> scrollbarDown </td> <td> Default. Down scroll arrow is at the specified location </td> </tr> <tr> <td> scrollbarHThumb </td> <td> Horizontal scroll thumb or box is at the specified location </td> </tr> <tr> <td> scrollbarLeft </td> <td> Left scroll arrow is at the specified location </td> </tr> <tr> <td> scrollbarPageDown </td> <td> Page-down scroll bar shaft is at the specified location </td> </tr> <tr> <td> scrollbarPageLeft </td> <td> Page-left scroll bar shaft is at the specified location </td> </tr> <tr> <td> scrollbarPageRight </td> <td> Page-right scroll bar shaft is at the specified location </td> </tr> <tr> <td> scrollbarPageUp </td> <td> Page-up scroll bar shaft is at the specified location </td> </tr> <tr> <td> scrollbarRight </td> <td> Right scroll arrow is at the specified location </td> </tr> <tr> <td> scrollbarUp </td> <td> Up scroll arrow is at the specified location </td> </tr> <tr> <td> scrollbarVThumb </td> <td> Vertical scroll thumb or box is at the specified location </td> </tr> <tr> <td> down </td> <td> Composite reference to scrollbarDown </td> </tr> <tr> <td> left </td> <td> Composite reference to scrollbarLeft </td> </tr> <tr> <td> pageDown </td> <td> Composite reference to scrollbarPageDown. </td> </tr> <tr> <td> pageLeft </td> <td> Composite reference to scrollbarPageLeft. </td> </tr> <tr> <td> pageRight </td> <td> Composite reference to scrollbarPageRight. </td> </tr> <tr> <td> pageUp </td> <td> Composite reference to scrollbarPageUp. </td> </tr> <tr> <td> right </td> <td> Composite reference to scrollbarRight. </td> </tr> <tr> <td> up </td> <td> Composite reference to scrollbarUp. </td> </tr> </tbody> </table> <p id="test">我们添加了些图片与表格延缓页面的加载速度</p> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s015.jpg" alt="图片1" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s016.jpg" alt="图片2" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s017.jpg" alt="图片3" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s018.jpg" alt="图片4" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s019.jpg" alt="图片5" /> </body> </html>
以下,更新前一些有用的东西,舍不得丢弃,暂时还留着。
用于判定是否为顶层window:
//方法一
var topwindow = self === self.top
//方法二
var topwindow = false;
try {
topwindow = window.frameElement == null;
} catch(e){}
推荐第一种,第二种必须要待到document.body形成之时才能用,有关frameElement 的资料详见这里与这里。 frameElement要求当前window是一个 frame 或 iframe才存在,否则返回null。不过第一种要注意一下,在IE 下,top, self, parent 和对应的 window 并不全等。见下面测试:
alert(window === window.top); // 应该为true alert(self === self.top); // 应该为true alert(self === window.top); // 应该为true alert(self === window); // 应该为true alert(window == window.top); // 应该为true alert(typeof self === typeof window); // 应该为true alert(self == window); // 应该为true
一些有用的链接:
http://tanny.ica.com/ICA/TKO/test.nsf/DOMContentLoaded.htm
基本上每个库都有这东西,因为如果要对页面上的元素进行操作,我们必须等到页面加载了这个元素才行,否则会报错,但是我们很能判定某个元素是否已加载,但我们可以判定页面是否加载,这就是我们经常把代码放到window.onload = function(){}之中的缘由。但window.onload事件是待到页面上的所有资源被加载才激活,如果页面上有许多图片,音乐或falsh,而我们要操作的元素在的它们的下方呢?因此,W3C做了少有几桩好事,搞了DOMContentLoaded与addEventListener,可能也不是他们搞的,把某浏览器的私有实现盖上个大印,标明它是标准罢了,如safari的canvas,IE的getBoundingClientRect……DOMContentLoaded是DOM树完成时激活的事件,addEventListener支持多重加载与冒泡捕获。IE没有这东西,我在《javascript的事件加载》基本给出它的雏形了(注:昨天重写了该文),本文将在它的基础上进行进一步的封装与改进,如setTimeout改为零秒延迟,清除setTimeout,执行完加载后把加载函数清除掉,对IE框架结构的页面进行更安全的设置……最重要的是修正下面网友 wbkt2t 提到的在IE中的失误!。晚上再次更新,发现doScroll并没有想象中的快,比不上script defer……
IE6的数据:
IE8的数据:
综合执行顺序为:
oncontentready,这时DOM树完成
script defer,这时开始执行设定了defer属性的script
ondocumentready complete,这时可以使用HTC组件与XHR
html.doScroll 这时可以让HTML元素使用doScroll方法
window.onload 这时图片flash等资源都加载完毕
new function(){
dom = [];
dom.isReady = false;
dom.isFunction = function(obj){
return Object.prototype.toString.call(obj) === "[object Function]";
}
dom.Ready = function(fn){
dom.initReady();//如果没有建成DOM树,则走第二步,存储起来一起杀
if(dom.isFunction(fn)){
if(dom.isReady){
fn();//如果已经建成DOM,则来一个杀一个
}else{
dom.push(fn);//存储加载事件
}
}
}
dom.fireReady =function(){
if (dom.isReady) return;
dom.isReady = true;
for(var i=0,n=dom.length;i<n;i++){
var fn = dom[i];
fn();
}
dom.length = 0;//清空事件
}
dom.initReady = function(){
if (document.addEventListener) {
document.addEventListener( "DOMContentLoaded", function(){
document.removeEventListener( "DOMContentLoaded", arguments.callee, false );//清除加载函数
dom.fireReady();
}, false );
}else{
if (document.getElementById) {
document.write("<script id=\"ie-domReady\" defer='defer'src=\"//:\"><\/script>");
document.getElementById("ie-domReady").onreadystatechange = function() {
if (this.readyState === "complete") {
dom.fireReady();
this.onreadystatechange = null;
this.parentNode.removeChild(this)
}
};
}
}
}
}
使用方法:
dom.Ready(function(){
alert("我的domReady!")
});
dom.Ready(function(){
alert("我的domReady测试多重加载1!")
});
dom.Ready(function(){
alert("我的domReady测试多重加载2!")
});
dom.Ready(function(){
alert(document.getElementById("test").innerHTML)
});
具体完整的代码:
<!doctype html> <html dir="ltr" lang="zh-CN"> <head id="head"> <meta charset="utf-8"/> <title>jQuery的domReady </title> <script type="text/javascript"> new function(){ dom = []; dom.isReady = false; dom.isFunction = function(obj){ return Object.prototype.toString.call(obj) === "[object Function]"; } dom.Ready = function(fn){ dom.initReady();//如果没有建成DOM树,则走第二步,存储起来一起杀 if(dom.isFunction(fn)){ if(dom.isReady){ fn();//如果已经建成DOM,则来一个杀一个 }else{ dom.push(fn);//存储加载事件 } } } dom.fireReady =function(){ if (dom.isReady) return; dom.isReady = true; for(var i=0,n=dom.length;i<n;i++){ var fn = dom[i]; fn(); } dom.length = 0;//清空事件 } dom.initReady = function(){ if (document.addEventListener) { document.addEventListener( "DOMContentLoaded", function(){ document.removeEventListener( "DOMContentLoaded", arguments.callee, false );//清除加载函数 dom.fireReady(); }, false ); }else{ if (document.getElementById) { document.write("<script id=\"ie-domReady\" defer='defer'src=\"//:\"><\/script>"); document.getElementById("ie-domReady").onreadystatechange = function() { if (this.readyState === "complete") { dom.fireReady(); this.onreadystatechange = null; this.parentNode.removeChild(this) } }; } } } } dom.Ready(function(){ alert("我的domReady!") }); dom.Ready(function(){ alert("我的domReady测试多重加载1!") }); dom.Ready(function(){ alert("我的domReady测试多重加载2!") }); dom.Ready(function(){ alert(document.getElementById("test").innerHTML) }); window.onload = function(){ alert("这是onload事件!") }; </script> </head> <body> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s005.jpg" alt="图片1" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s006.jpg" alt="图片2" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s007.jpg" alt="图片3" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s008.jpg" alt="图片4" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s009.jpg" alt="图片5" /> <table class="filament_table" cellspacing="0" width="700" rules="cols" > <col class="grey" width="25%"></col> <col class="yellow"></col> <thead> <tr> <th> 参数 </th> <th> 描述 </th> </tr> </thead> <tbody> <tr> <td> scrollbarDown </td> <td> Default. Down scroll arrow is at the specified location </td> </tr> <tr> <td> scrollbarHThumb </td> <td> Horizontal scroll thumb or box is at the specified location </td> </tr> <tr> <td> scrollbarLeft </td> <td> Left scroll arrow is at the specified location </td> </tr> <tr> <td> scrollbarPageDown </td> <td> Page-down scroll bar shaft is at the specified location </td> </tr> <tr> <td> scrollbarPageLeft </td> <td> Page-left scroll bar shaft is at the specified location </td> </tr> <tr> <td> scrollbarPageRight </td> <td> Page-right scroll bar shaft is at the specified location </td> </tr> <tr> <td> scrollbarPageUp </td> <td> Page-up scroll bar shaft is at the specified location </td> </tr> <tr> <td> scrollbarRight </td> <td> Right scroll arrow is at the specified location </td> </tr> <tr> <td> scrollbarUp </td> <td> Up scroll arrow is at the specified location </td> </tr> <tr> <td> scrollbarVThumb </td> <td> Vertical scroll thumb or box is at the specified location </td> </tr> <tr> <td> down </td> <td> Composite reference to scrollbarDown </td> </tr> <tr> <td> left </td> <td> Composite reference to scrollbarLeft </td> </tr> <tr> <td> pageDown </td> <td> Composite reference to scrollbarPageDown. </td> </tr> <tr> <td> pageLeft </td> <td> Composite reference to scrollbarPageLeft. </td> </tr> <tr> <td> pageRight </td> <td> Composite reference to scrollbarPageRight. </td> </tr> <tr> <td> pageUp </td> <td> Composite reference to scrollbarPageUp. </td> </tr> <tr> <td> right </td> <td> Composite reference to scrollbarRight. </td> </tr> <tr> <td> up </td> <td> Composite reference to scrollbarUp. </td> </tr> </tbody> </table> <p id="test">我们添加了些图片与表格延缓页面的加载速度</p> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s015.jpg" alt="图片1" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s016.jpg" alt="图片2" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s017.jpg" alt="图片3" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s018.jpg" alt="图片4" /> <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s019.jpg" alt="图片5" /> </body> </html>
以下,更新前一些有用的东西,舍不得丢弃,暂时还留着。
用于判定是否为顶层window:
//方法一
var topwindow = self === self.top
//方法二
var topwindow = false;
try {
topwindow = window.frameElement == null;
} catch(e){}
推荐第一种,第二种必须要待到document.body形成之时才能用,有关frameElement 的资料详见这里与这里。 frameElement要求当前window是一个 frame 或 iframe才存在,否则返回null。不过第一种要注意一下,在IE 下,top, self, parent 和对应的 window 并不全等。见下面测试:
alert(window === window.top); // 应该为true alert(self === self.top); // 应该为true alert(self === window.top); // 应该为true alert(self === window); // 应该为true alert(window == window.top); // 应该为true alert(typeof self === typeof window); // 应该为true alert(self == window); // 应该为true
一些有用的链接:
http://tanny.ica.com/ICA/TKO/test.nsf/DOMContentLoaded.htm
发表评论
-
js 之 页面定时跳转
2013-08-27 09:30 0http://blog.sina.com.cn/s/blog_ ... -
json eval
2013-08-17 10:31 0eval :https://developer.mozil ... -
IE8避免网页显示混乱
2012-11-23 09:45 1323IE8实现“超级标准模式”的事儿,IE开发团队为了让 ... -
windows弹出窗体
2012-11-12 21:27 843http://hi.baidu.com/ying ... -
JavaScript使用小技巧
2012-11-12 20:59 1007http://xuebinxu.blog.51cto. ... -
Javascript 操作select控件大全(新增、修改、删除、选中、清空、判断存在等)
2012-11-12 00:46 784http://www.webshowme.com/04 ... -
Js中 关于top、clientTop、scrollTop、offsetTop的用法
2012-11-06 22:47 945http://hi.baidu.com/taom ... -
再谈Iframe的问题
2012-10-23 11:01 1055http://js8.in/638.html ... -
关于iFrame动态创建函数
2012-10-22 00:02 1423http://asers.blog.sohu.com/ ... -
1、javascript活跃博客和社区
2012-10-12 16:35 890javascript活跃博客和社区: 1、司徒正美 : ... -
javascript控制样式
2012-10-09 23:30 819javascript,控制鼠标,如变成漏斗形式: &l ... -
JavaScript 创建类/对象的几种方式
2012-09-26 20:55 799http://blog.csdn.net/e ... -
js 刷新页面
2012-09-26 16:13 908Javascript刷新页面 ... -
JavaScript 和 Ajax 开发的最佳实践
2012-10-21 23:55 830使用外部 JavaScript 文件 最大化 Java ... -
javascript的document.write
2012-10-24 23:35 1954部分代码: <scri ... -
select元素javascript常用操作
2012-09-16 23:39 809http://xieyu.blog.51cto.co ... -
服务器端可控情形的Javascript跨域访问解决方法
2012-09-14 00:18 880http://weidagang2046.blo ... -
DOM的基本方法
2012-09-13 23:45 856http://www.webshowme.com/04 ... -
call與apply
2012-09-13 23:37 0call 方法 调用一个对象的一个方法,以另一个对象替换当前 ... -
JavaScript中的错误处理
2012-09-12 15:05 0http://younglab.blog.51cto. ...
相关推荐
arcgis javascript中自定义infowindow实现,包含infowindow.js和infowindow.css和一个测试用的html页面,通过继承InfoWindowBase来实现
准备好 Shim 存储库。 包管理器 : components-domready : components/domready : components/domready
domReady 一个用于检测DOM就绪的AMD加载程序插件。 已知可在RequireJS中使用,但应在支持相同加载器插件API的其他AMD加载器中运行。 文件 请参阅。 最新发布 最新版本可从“最新”标签获得。 执照 麻省理工学院 ...
准备好 跨浏览器 DOM 就绪事件检测功能,能够在 DOM 加载和交互后对任意数量的回调进行排队。 用法 domReady ( function ( ) { // dom is loaded! } ) ;
elo是一个低保真跨浏览器 JavaScript 事件 API,gzips <3k。 这是一个极简主义者的事件库。 它可以作为一个独立的库工作,也可以集成到一个主机中,比如 。API ( ) elo没有声明$命名空间,但是它可以在闭包中使用...
一个超轻量,功能强大且独立的Javascript库,可与DOM一起使用 DOMmy.JS 作者:Riccardo Degni( ) 什么:允许使用现代和超精简DOM导航,Elements Collections, CSS styles, FX animations through CSS3, ...
当我们想在页面加载之后执行某个函数,肯定会想到onload了 但onload在浏览器看来,就是页面上的东西全部都加载完毕后才能发生,但那就为时已晚了。
答案搜索界面 大纲: 安装与设定 Answers Javascript API库不需要在本地安装。... script src =" https://assets.sitescdn.net/answers/answers.min.js " onload =" ANSWERS.domReady(initAnswers) " def
末日 同构 DOMReady - 只是节点中的 nextTicks。
御堂堂 ****休闲留言**** 移至RC3!... 将domReady检查移至模块级别,因此您无需在实现时对其进行编码。 允许预加载模块。 ****目标**** 试图加强清洁的全球空间。 尝试最小化实现代码。 尝试
它可以帮助您开发定义元素之间关系的 javascript 增强表单。 很快,就可以像在电子表格中一样计算元素值。 演示 如何使用 在 head 标签中间导入 Mootool 库和 MooCell 库 < head > < script type =" ...
5.1.2 给程序一个统一的入口——window.onload和DOMReady 5.1.3 CSS放在页头,JavaScript放在页尾 5.1.4 引入编译的概念——文件压缩 5.2 JavaScript的分层概念和JavaScript库 5.2.1 JavaScript如何分层 5.2.2...
一个简单的 javascript 代码应用包装 例子: // Set prefix Spaceball . setPrefix ( '_$' ) // create a new Spaceball with auto init Spaceball . create ( 'myFirstSpaceball' , { init : function ( ) { ...
SkyLabels.js有趣,紧凑和可访问的表格为什么选择SkyLabels.js? 可通过CSS进行自定义。 更改动画,样式等可访问的(使用标签元素)。 不需要更改布局。... 在domready事件期间或在包含sky-labels.min.js之
今天我们先不讲MooTools,而是讲一讲JavaScript中的函数(function)的基本知识。 但是,为了符合MooTools这个主题,你需要知道在哪里该使用MooTools的函数。此前,我们已经在我们的所有示例代码中,把代码都放在...
它来自将您需要编写的代码片段组合到您制作的每个项目中的过程,例如domReady事件,onLoad事件,与社交网络的共享脚本等等。版本1 功能列表: addEvent removeEvent triggerEvent 选择selectById selectByClass ...
带有多个构建版本(QSA、 、 、 ) 几种元素方法用于添加更多元素方法的 API活动跨浏览器 DOMContentLoaded (domready) 跨浏览器 DOM 事件事件委托(有或没有选择器引擎)发布/订阅用于应用程序通信的发布者对象...
源于JavaScript语言中函数、变量等定义可重复声明(导致覆盖)的特性,载入是按顺序的。 实现基于Mootools框架,兼容IE、Firefox、Chrome。 用法如下: [removed] window.addEvent('domready', function() { // ...
一个 browserify 转换,可以在 browserify 客户端 javascript 项目中轻松使用组件。 从无耻地复制 安装 通过 npm 安装: $ npm install decomponentify1 如何使用。 直接从github安装一些组件: $ component ...
var domready = require ( 'domready' ) var stateRouter = StateRouter ( knockoutRenderer ( /* options */ ) , 'body' ) // add whatever states to the state router domready ( function ( ) { stateRouter . ...