`

十大JavaScript函数 Top 10 custom JavaScript functions

阅读更多
http://www.dustindiaz.com/basement/common.js

/* Reference Article:
Dustin Diaz:
http://www.dustindiaz.com/top-ten-javascript/
*/

/* addEvent: simplified event attachment */
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}
	
var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);

/* window 'load' attachment */
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

/* grab Elements from the DOM by className */
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

/* toggle an element's display */
function toggle(obj) {
	var el = document.getElementById(obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	}
	else {
		el.style.display = '';
	}
}

/* insert an element after a particular node */
function insertAfter(parent, node, referenceNode) {
	parent.insertBefore(node, referenceNode.nextSibling);
}

/* Array prototype, matches value in array: returns bool */
Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};

/* get, set, and delete cookies */
function getCookie( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ";", len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}
	
function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+"="+escape( value ) +
		( ( expires ) ? ";expires="+expires_date.toGMTString() : "" ) + //expires.toGMTString()
		( ( path ) ? ";path=" + path : "" ) +
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
}
	
function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + "=" +
			( ( path ) ? ";path=" + path : "") +
			( ( domain ) ? ";domain=" + domain : "" ) +
			";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

/* quick getElement reference */
function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}
分享到:
评论

相关推荐

    Excel-Custom-Functions-JS:使用JavaScript在Excel中编写自己的函数

    通过自定义函数,您可以通过在JavaScript中将这些函数定义为外接程序的一部分来向Excel添加新函数。 Excel中的用户可以访问自定义函数,就像访问Excel中的任何本机函数一样,例如SUM() 。 该存储库包含创建新的...

    Excel-Custom-Functions:了解 Excel 中的自定义函数

    自定义函数使您能够通过在 JavaScript 中将这些函数定义为加载项的一部分来向 Excel 添加新函数。 Excel 中的用户可以像访问 Excel 中的任何本机函数一样访问自定义函数,例如SUM() 。 此存储库包含创建新自定义...

    利用vanillaES6和CustomElements构建基于组件的UI不需要任何框架

    - **箭头函数(Arrow Functions)**:提供更简洁的函数定义语法。 - **let和const**:局部作用域变量,避免了变量污染全局空间和意外修改。 ### 2. Custom Elements Custom Elements是Web Components规范的一部分,...

    custom-functions:自定义函数示例加载项

    javascript 内容类型 创建日期 样品 2018/7/25 上午 10:27:27 自定义函数 - 特殊插件示例 笔记 与自定义功能相关的示例,工具和论坛的主要仓库是 。 自定义函数 - 特殊插件示例 自定义函数 - 特殊加载项示例是一...

    ___:WordPress主题的functions.php的有用函数的集合

    10. **图像大小调整**: 使用`add_image_size()`函数可以创建自定义的图像尺寸。例如: ```php add_image_size( 'thumbnail-custom', 300, 200, true ); ``` 这将创建一个300x200像素的缩略图,保持原始图像的...

    GEE_x_3_ImageCollections_Functions.docx

    在"Exercise 3: Writing Custom Functions and Mapping across Image Collections"这一部分,我们将深入学习JavaScript编程基础和Earth Engine的空间数据概念,特别是针对图像集合的操作。 首先,了解基本的编程...

    DataTables高级初始化.rar

    6. **回调函数(Callback functions)**: DataTables提供了多个生命周期回调函数,如`init`, `draw`, `preDraw`, `xhr`等,用于在特定事件发生时执行自定义代码。 7. **国际化(Internationalization)**: ...

    ch04讲座功能示例

    在“ch04讲座功能示例”中,我们聚焦于JavaScript这一编程语言中的函数功能。...通过深入研究这些例子,你可以更好地理解和掌握JavaScript函数的使用方法和技巧,这对于提升JavaScript编程能力至关重要。

    带有 helperscripts 文件夹的freetextbox 控件

    3. **Custom JavaScript Functions**: 自定义的JavaScript函数,这些函数负责与FREETEXTBOX控件进行交互,比如初始化控件、添加自定义功能等。 4. **CSS Stylesheets**: 控件的样式表文件,用于定义FREETEXTBOX的...

    红色精美漂亮的咖啡官网企业模板_红色精美漂亮咖啡企业餐饮幻灯美食糖果.rar

    5. 功能脚本:`functions.js`包含了自定义的JavaScript函数,可能包含了一些特定的交互功能,如按钮点击事件、表单验证或者页面动态效果。 6. 图标文件:`favicon.ico`是网站的图标,通常显示在浏览器地址栏和书签...

    jQuery.validate.js 中文文档.pdf(整理)

    #### 五、Validator functions 1. **`setDefaults(defaults)`** - **描述**: 设置全局默认选项。 - **示例**: ```javascript $.validator.setDefaults({ debug: true }); ``` 2. **`addMethod(name, method...

    咖啡馆HTML5饮料网站模板是一款橙色风格的咖啡馆网站模板.rar

    9. `functions.js`:这个文件可能包含了一些自定义的JavaScript函数,用于处理网站的特定交互或功能,比如导航菜单的动画、表单验证等。 综上所述,这个模板利用了HTML5的先进特性,结合jQuery和自定义JavaScript...

    experiment3.rar

    4. **云函数(Cloud Functions)**:云函数是微信小程序提供的一种后端服务,允许开发者在云端运行代码,而无需关心服务器的管理和运维。在通讯录应用中,云函数可能用于存储和检索联系人数据,提供安全的数据备份,...

    stylus-1.5.23.zip

    6. **自定义函数(Custom Functions)**:除了内置函数,Stylus还允许开发者创建自己的函数,进一步扩展其功能。 7. **混入(Mixins)**:类似CSS的@extend,Stylus的混入可以将一组规则应用于多个选择器,避免代码...

    wordpress主题制作教程

    WordPress提供了一系列内置函数,如`get_header()`、`wp_enqueue_script()`等,它们帮助开发者轻松地调用头部、脚部文件或加载JavaScript。同时,钩子系统允许你在特定的地方插入自定义代码,如`add_action('wp_...

    Color-Personality:通过在此网站上键入您喜欢的颜色来了解您的个性

    2. **Arrow Functions**:JavaScript 中的箭头函数是一种更简洁的函数定义方式,它简化了函数表达式,使得代码更易读。在 "Color-Personality" 应用中,箭头函数可能被用于处理事件监听、颜色解析等逻辑操作。 3. *...

    serverless-plugin-optimize:与Browserify捆绑在一起,与Babel一起自动转换和缩小到与NodeJS运行时兼容JavaScript

    无服务器优化插件 与Browserify... Optimize将在SLS deploy上运行并invoke local命令选件可以在custom属性中全局设置配置选项,也可以在optimize属性中每个函数内部设置配置选项。 函数选项将覆盖全局选项。全球debug

    python3.6.5参考手册 chm

    The json module: JavaScript Object Notation The plistlib module: A Property-List Parser ctypes Enhancements Improved SSL Support Deprecations and Removals Build and C API Changes Port-Specific ...

    ashare-WP-custom-theme

    【ashare-WP-custom-theme】是一个专为WordPress设计的自定义主题,旨在提供一个高度可定制和功能丰富的网站外观。这个主题充分利用了SCSS(Sassy CSS)预处理器的特性,使得开发者能够更加高效地编写CSS样式,并...

    wordpress 拖拽式导航分类

    结合WordPress的`wp_enqueue_script`函数加载必要的JavaScript资源,并在适当的地方添加事件监听器,以处理拖放事件并更新菜单结构。 总的来说,WordPress的拖拽式导航分类是其强大和易用性的一个体现。通过理解和...

Global site tag (gtag.js) - Google Analytics