`

支持绑定多个函数的onDomReady事件

阅读更多
onDomReady比on load要更好,在Ext,mootools的框架里都有类似的实现。但有时我们并不需要这两个js框架,不能因为一个onDomReady就引入其他js,太浪费了。所以自己写了一个。
在IE6,firefox2上测试通过。
<script>
(function(){//闭包,保护全局变量
	var fns=[];
	/**
	 * onDomReady
	 */
	window.onDomReady = function(fn) {
		fns.push(fn);
	}
	function runFns(){
		for(var i=0;i<fns.length;i++){
			fns[i]();
		}
	}
	//W3C
	if(document.addEventListener){
		document.addEventListener("DOMContentLoaded", runFns, false);
	}	
	else { //IE
		document.onreadystatechange = function(){	
			if(document.readyState == "interactive")
			{
				runFns();
			}
		}
	}
})();

window.onDomReady(function(){
	alert('init 1');
});
window.onDomReady(function(){
	alert('init 2');
});
window.onDomReady(function(){
	alert('init 3');
});
</script>
分享到:
评论

相关推荐

    Delphi 动态绑定事件处理函数过程

    在 Delphi 编程环境中,动态绑定事件处理函数是一个强大的特性,它允许程序在运行时动态地连接事件和对应的处理函数,而不是在编译时静态地确定。这为开发提供了更大的灵活性,特别是在处理不确定数量的对象或者需要...

    PyQt5按钮点击事件 给按钮绑定事件调用自定义函数 QPushButton

    # PyQt5按钮点击事件 给按钮绑定事件调用自定义函数 QPushButton 1. 继承 QWidget 定义自定义窗口类; 1. 在窗口中创建三个 QPushButton 并设置水平布局 QHBoxLayout;...2. 将三个按钮分别绑定自定义函数。

    JavaScript绑定大事监听函数的通用方法_.docx

    一个好的 addEvent() 方法应当达到以下几个要求:支持同一元素的同一大事句柄可以绑定多个监听函数、假如在同一元素的同一大事句柄上多次注册同一函数那么第一次注册后的全部注册都被忽视、函数体内的 this 指向的...

    jQuery使用bind函数实现绑定多个事件的方法

    本文实例讲述了jQuery使用bind函数实现绑定多个事件的方法。分享给大家供大家参考,具体如下: 在jQuery中绑定多个事件名称是,使用空格隔开,举例如下: $("#foo").bind("mouseenter mouseleave", function() { $...

    微信小程序 页面跳转事件绑定的实例详解

    微信小程序 页面跳转事件绑定的实例详解 什么是事件 ...在组件中绑定一个事件处理函数。 如bindtap,当用户点击该组件的时候会在该页面对应的Page中找到相应的事件处理函数 开启小程序之旅 &lt;/v

    把多个JavaScript函数绑定到onload事件处理函数上的方法

    总结来说,将多个JavaScript函数绑定到onload事件处理函数上的一个关键点是理解不能直接将多个函数赋值给window.onload,因为这会导致后面的赋值覆盖前面的函数。使用addLoadEvent函数,可以有效地解决这个问题,...

    一分钟教你手写一个通用的事件绑定函数(支持普通函数和事件代理函数)

    一分钟教你手写一个通用的事件绑定函数(支持普通函数和事件代理函数) 一、写在开头 最近一直在搞小程序,有点腻了,顺便复习了一下js,刚好可以写一个比较通用的绑定事件,见笑了各位。 二、发现问题 封装了一个...

    layui动态绑定事件的方法

    我们只需要在父元素上设置一个事件监听器,就可以捕捉到所有子元素触发的特定事件。这样,无论子元素是何时添加到DOM中的,只要它们触发了相应的事件,父元素上的事件监听器就能捕捉到。 在layui框架中,动态绑定...

    多路视频播放通道和播放窗口绑定函数

    在多媒体应用领域,尤其是视频处理和流媒体服务中,多路视频播放通道和播放窗口的绑定函数是一个关键的组件。这个功能允许用户同时管理和显示多个不同的视频源,这对于监控系统、视频会议、在线教育和多媒体内容展示...

    javascrpt绑定事件之匿名函数无法解除绑定问题.docx

    匿名函数绑定事件并解除绑定是JavaScript开发中的一个重要话题。通过上述方法,我们可以有效地解决这一问题。不过,在实际应用中还需要综合考虑多种因素,选择最适合项目的解决方案。随着技术的发展,未来可能会出现...

    浅析jQuery事件之on()方法绑定多个选择器,多个事件

    - 使用对象字面量,可以为同一个元素绑定多个事件,每个事件对应一个处理函数,如下所示: ```javascript $("table.planning_grid").on({ mouseenter: function(){ // 鼠标进入事件的处理函数 }, mouseleave:...

    pb中函数与事件的区别

    5. **可重用性**:函数可以被多次调用,而事件处理程序通常与特定的对象和事件绑定,重复使用的情况较少。 在实际编程中,函数和事件经常结合使用。例如,你可以在事件处理程序中调用自定义函数来处理复杂的业务...

    javascript attachEvent绑定多个事件执行顺序问题

    这种方法简单直接,但缺点是不适用于需要绑定多个事件处理函数的情况,因为它会在执行完第一个函数后直接返回,而不会继续执行后续的函数。如果需要绑定多个函数,则需要在函数内部再次调用其他函数: ```...

    IntraWeb控件事件绑定Ajax函数

    IntraWeb控件事件绑定Ajax函数 开发测试环境: Embarcadero Delphi XE Version 15.0.3890.34076 IntraWeb 14.0.32 注:本delphi源代码参考官方文档,修改测试而成,都是本人实验成功的。 控件的事件绑定Ajax...

    JavaScript绑定事件监听函数的通用方法

    Dean Edward的方法通过为每个事件处理函数生成一个唯一的标识符($$guid),并且在事件触发时,通过handleEvent()函数来逐一执行绑定的监听函数,从而保证了监听函数的执行顺序。这个方法的优点是能够在所有浏览器...

    JavaScript 事件绑定及深入

    1. **事件覆盖问题**:如果一个事件绑定了多个函数,后绑定的函数会覆盖之前的函数,导致前面的函数无法执行。 例如: ```javascript window.onload = function() { alert('Lee'); } window.onload = ...

    javascript为DOM绑定事件 兼容

    这种方式简单易用,但存在一定的局限性,例如无法绑定多个事件处理程序,并且在 IE 浏览器中可能会出现问题。 使用 W3C 的 addEventListener 和 IE 的 attachEvent 为了解决上述问题,我们可以使用 W3C 的 ...

    事件绑定、事件监听、事件委托.pdf

    这使得代码的维护变得更加容易,同时,也支持在同一个元素上绑定多个事件处理器。 事件监听是另一种事件绑定的机制,它遵循W3C规范,并提供了更强大的事件管理方式。在事件监听中,我们通常使用`addEventListener()...

Global site tag (gtag.js) - Google Analytics