仿jquery的几行代码
来源:互联网 发布:淘宝登录界面刷不出来 编辑:程序博客网 时间:2024/06/16 13:48
单纯自己看,没写注释。。。
function myAddEvent(obj, sEv, fn) { if (obj.attachEvent) { obj.attachEvent('on' + sEv, function () { fn.call(obj) }); } else { obj.addEventListener(sEv, fn, false) }}function getByClass(oparent, sclass) { var aEle = oparent.getElementsByTagName('*'); var aResult = []; var i = 0; for (i = 0, len = aEle.length; i < len; i++) { if (aEle[i].className == sclass) { aResult.push(aEle[i]) } } return aResult;}function vq(vArg) { this.elements = []; switch (typeof vArg) { case "function": myAddEvent(window, "load", vArg); break; case "string": switch (vArg.charAt(0)) { case "#": var obj = document.getElementById(vArg.substring(1)); this.elements.push(obj); break; case ".": this.elements = getByClass(document, vArg.substring(1)); break; default: this.elements = document.getElementsByTagName(vArg); } break; case "object": this.elements.push(vArg) }}vq.prototype.click = function (fn) { for (var i = 0; i < this.elements.length; i++) { myAddEvent(this.elements[i], "click", fn); }}function $(vArg) { return new vq(vArg)}vq.prototype.show = function () { for (var i = 0; i < this.elements.length; i++) { this.elements[i].style.display = "block";//咱不考虑行间对象 }}vq.prototype.hide = function () { for (var i = 0; i < this.elements.length; i++) { this.elements[i].style.display = "none" }}vq.prototype.hover = function (fnOver, fnOut) { for (var i = 0; i < this.elements.length; i++) { myAddEvent(this.elements[i], "mouseover", fnOver); myAddEvent(this.elements[i], "mouseout", fnOut) }}vq.prototype.css = function (attr, value) { if (arguments.length == 2) {//设置样式 for (var i = 0; i < this.elements.length; i++) { this.elements[i].style[attr] = value; } } else {//获取样式 return getStyle(this.elements[0], attr); }}function getStyle(obj, attr) { if (obj.currentStyle) { return obj.currentStyle[attr] } else { return getComputedStyle(obj, false)[attr] }}vq.prototype.toggle = function () { for (var i = 0; i < this.elements.length; i++) { addToggle(this.element s[i]) } function addToggle(obj) { var count = 0; myAddEvent(obj, "click", function () { arguments[count%arguments.length].call(obj); count++; }) }}
阅读全文
0 0
- 仿jquery的几行代码
- Android 仿今日头条的视频播放控件(几行代码快速实现)
- Android 仿今日头条的视频播放控件(几行代码快速实现)
- Android 仿今日头条的视频播放控件(几行代码快速实现)
- JQuery+JSON 实现的一个仿Google提示的代码
- 仿jQuery的oop
- 极简Jquery的Tabs内容轮换效果,几行代码搞定
- 几行简单的jQuery代码搞定tab标签切换效果
- Jquery几行代码解决跟随屏幕滚动DIV
- Jquery几行代码解决跟随屏幕滚动DIV
- 【jquery仿datalist的一个问题,求助】——设置每行显示几列,块状DIV的解决办法
- 几句代码写出一个内容轮播器(jQuery插件的神奇)jQuery.flexslider.js登场!!
- 几句代码写出一个内容轮播器(jQuery插件的神奇)jQuery.flexslider.js登场!!
- 商品导航--仿电器网上商城导航jquery代码
- safari(css,jquery)仿iosNative的actionsheet
- 仿JQuery源码封装的库函数
- 仿jquery的$("#demo"),$(".className"),$("div")
- 仿手机通讯录的jQuery滑动事件
- js中文字符的过滤问题
- Dubbo超时重试机制带来的数据重复问题
- 约瑟夫环
- 51nod-1079 中国剩余定理
- 服务器发布脚本
- 仿jquery的几行代码
- 【Fiddler】1代理
- MT n90 Advice of Charges, Interest and Other Adjustments收费、利息和其他调整通知
- android多线程asyncTask与Handler用法
- C++的& 与 *区别(从递归上解释)
- spring boot分页组件
- 2017/9/25工作总结
- 深入浅出Node.js之CommonJS的模块规范
- Android键值添加和调试