`

__init_xu 色色js代码库 -- 新手帖代码全部删除,请见谅!!!

阅读更多

今年纯粹是JS学习年,一年大部分时间都在折腾JS,其它后台技术基本没有大的收获...

 

在学习JS的过程中得到了很多大哥的帮助,让我从JS菜鸟到现在的水平,对JS闭包的疑惑到现在的了解,对我帮助最大的是ALZ老大,小夜,UCREN开发者[小黄],阿旭,天凡,心跳,小白,中山,老白等等....

 

 

 

关于之前的一系列回帖,竟然被大家集体投成新手帖,看来是我太肤浅了... 以后不再写这种新手贴了,源代码全部删除,留下了一个PDF文档,之前发出的代码全部在里面,后期更新的__init_xu 色色js代码库不再在博客上贴出,请见谅!!!

新上传 __xu_init.all.min.js 最新版本的编译版本,支持MD5加密,提供xu.uid()生成唯一值

eo对象新增empty方法,呵呵,循环删除节点就可以了:

while ( this.ele.firstChild )
			this.ele.removeChild( this.ele.firstChild );

 

/**
 * xu.dom.EObject
 */
xu._class.create('xu.dom','EObject',null,{
 id: null ,
 desc: 'DOM Element Object 封装器' ,
 
 offset: function(){
  if (!this.ele) return null ; 
  var ele = this.ele ;  
  var t=ele.offsetTop;  var l=ele.offsetLeft;   
     while(ele=ele.offsetParent){
      t+=ele.offsetTop+(xu.browser.$IE ?ele.clientTop:0);
      l+=ele.offsetLeft+(xu.browser.$IE ?ele.clientLeft:0);
     }   
     return {left:l,top:t};
 } ,
 
 attr: function(o){
  if(!xu.verify._undef(o) && xu.verify._obj(o) && this.ele.setAttribute){
   for(var p in o){
    if (xu.verify._str(p)){
     try {
      this.ele.setAttribute(p,o[p]) ;
     }catch(e){
      debug_msg(this.ele.nodeName+" "+p+" 只读");
     }
    }
   }
  }   
  return this ;
 } ,
 getAttr: function(name){
  if ( name && this.hasAttr(name))
   return this.ele.getAttribute(name);
 } ,
 hasAttr: function(name){
  if ( this.ele && this.ele.hasAttribute)
   return this.ele.hasAttribute(name);
 } ,
 removeAttr: function(name){  
  if ( this.hasAttr(name)&&this.ele.removeAttribute )
   this.ele.removeAttribute(name);
  return this ; 
 } ,
 
 
 setWidth: function(){} ,
 setHeight: function(){} ,
 setLeft: function(){} ,
 setTop: function(){} ,
 
 setPosition: function(){} ,
 
 show: function(){
  return this.css({display: ''});
 } ,
 hide: function(){  
  return this.css({display: 'none'});
 } , 
 
 /**
  * CSS 属性设置,支持{ color: "blue", 'background-color': "red" }
  * 依赖core.js
  * @param {} o
  * @return xu.dom.EObject
  */
 css: function(o){
  if (!xu.verify._undef(o) && xu.verify._obj(o)){
   for(var p in o){
    if (xu.verify._str(p)){
     this.ele.style[p.getCamelcaseStyle()] = o[p] ;
    }
   }
  }   
  return this ; 
 } ,
 getCss: function(name){
  if (!xu.verify._undef(name) && xu.verify._str(name)){
   return this.ele.style[name.getCamelcaseStyle()] ;
  }
 } ,
 hasClass: function(cls_n){
  var is = false;
  xu.array.each(this.ele.className.split(' '),function(item){
   if (item == cls_n) is = true;
  });
  return is;
 } ,
 addClass: function(cls_n){
  this.ele.removeClass(cls_n);
  this.ele.className += ' ' + cls_n;
 } ,
 toggleClass: function(cls_n){
  if (this.hasClass(cls_n))
   this.removeClass(cls_n);
  else
   this.addClass(cls_n);
 } ,
 removeClass: function(cls_n){
  var new_cls_n = '';
  xu.array.each(this.ele.className.split(' '),function(item){
   if (item != cls_n){
    if (i > 0) new_cls_n += ' ';
    new_cls_n += item;
   }
  });
  this.ele.className = new_cls_n;
 } ,
 
 
 
 //
 html: function(v){//在browser.ie.js中做了修正
  if(v != undefined){   
   this.empty().ele.innerHTML = v.replace(/<script[^>]*>[\S\s]*?<\/script[^>]*>/ig, "");
  }  
  return xu.dom.html(this.ele) ;
 } ,
 text: function(v) {
  if (v != undefined)
   this.empty().append(document.createTextNode(v));
  else {   
   return xu.dom.text(this.ele) ;
  }
 } ,
 
 //dom 操作
 
 //元素追加到父节点的最后端
 appendTo: function(parentNode){
  if (parentNode && parentNode.appendChild)
   parentNode.appendChild(this.ele);
  return this ; 
 } ,
 //将子结点插到最后端
 append: function(subNode){
  //nodeType == 1 说明为元素节点
  if (subNode && this.ele && this.ele.nodeType == 1)
   this.ele.appendChild(subNode);
  return this ; 
 } ,
 
 //元素追加到父节点的最前端
 prependTo: function(parentNode){
  if (parentNode && parentNode.firstChild)
   parentNode.insertBefore(this.ele,parentNode.firstChild);
  return this ; 
 } ,
 //将子结点追加到最前端
 prepend: function(subNode) {
  if (subNode && this.ele && this.ele.nodeType == 1 && this.ele.firstChild){
   this.ele.insertBefore(subNode,this.ele.firstChild);
  }
  return this ;
 } ,
 
 //在元素前面插入同级节点
 insertBefore: function(node){
  if (node && this.ele && this.ele.parentNode.insertBefore)
   this.ele.parentNode.insertBefore(node,this.ele);
  return this ;
 } ,
 //将元素插入指定节点前面[同级]
 insertBeforeTo: function(node){
  if (node && this.ele && node.parentNode.insertBefore)
   node.parentNode.insertBefore(this.ele,node);
  return this ;
 } ,
 //在元素后面插入同级节点
 insertAfter: function(node){
  //this.ele.nextSibling //返回节点之后紧跟的同级节点,不存在返回null,表示当前元素是最后节点
  if (node && this.ele && this.ele.parentNode.insertBefore){
   if (this.ele.nextSibling) 
    this.ele.parentNode.insertBefore(node,this.ele.nextSibling);
   else 
    this.ele.parentNode.appendChild(node);
  }
  return this ;
 } , 
 //将元素插入指定节点后面[同级]
 insertAfterTo: function(node){
  if (node && this.ele && node.parentNode.insertBefore){
   if (node.nextSibling) 
    node.parentNode.insertBefore(this.ele,node.nextSibling);
   else 
    node.parentNode.appendChild(this.ele);
  }
  return this ;
 } , 
 parent: function(){
  if (this.ele && this.ele.parentNode)
   return this.ele.parentNode ;
  return null ; 
 } ,
 
 //替换元素节点
 replace: function(node){
  if (node && this.ele && this.ele.parentNode.replaceChild){
   this.ele.parentNode.replaceChild(node,this.ele);
   this.ele = node ;
  }
  return this ;
 } ,
 //替换元素子节点
 replaceChild: function(newSubNode,oldSubNode){
  if (oldSubNode && newSubNode && this.ele && this.ele.nodeType == 1)
   this.ele.replaceChild(newSubNode,oldSubNode);
  return this ;
 } ,
 
 //移除元素节点
 remove: function(){
  if (this.ele && this.ele.parentNode.removeChild){
   var p_ele = this.ele.parentNode;
   p_ele.removeChild(this.ele);this.ele = p_ele ; 
  }
  return this ;
 } ,
 //移除元素子节点
 removeChild: function(subNode){
  if (subNode && this.ele && this.ele.nodeType == 1)
   this.ele.removeChild(subNode);
  return this ; 
 } ,
 //清空所有子节点
 empty: function(){
  while ( this.ele.firstChild )
   this.ele.removeChild( this.ele.firstChild );
  return this ;
 } ,
 
 
 //
 moveTo: function(l,t){
  return this.css({'position': "absolute",left: l + "px",top: t + "px"});
 } ,
 
 resizeTo: function(w,h){
  return this.css({width: w + "px" ,height: h + "px"});
 } ,
 
 //添加拖拉效果
 onDrag: function(start,on,end){
  debug_msg('依赖 dom.effect.js');  
 } ,
 
 //event handle
 on: function(type,fn){
  if (xu.verify._func(fn))
   xu.dom.event.add(this.ele,type,fn);
  return this ;
 } ,
 un: function(type,fn){
  if (xu.verify._func(fn))
   xu.dom.event.remove(this.ele,type,fn);
  return this ;
 } 
 
});

 

 

分享到:
评论
19 楼 vb2005xu 2009-11-11  
新手帖代码全部删除,请见谅!!!
18 楼 vb2005xu 2009-11-11  
是该写写文档了 ,这个周末回去组织下
17 楼 vb2005xu 2009-11-11  
新手帖代码全部删除,请见谅!!!
16 楼 vb2005xu 2009-11-11  
新手帖代码全部删除,请见谅!!!
15 楼 vb2005xu 2009-11-11  
新手帖代码全部删除,请见谅!!!
14 楼 vb2005xu 2009-11-11  
新手帖代码全部删除,请见谅!!!
13 楼 cnlinkin 2009-11-11  
关注一下 呵呵~:D
12 楼 vb2005xu 2009-11-10  
新手帖代码全部删除,请见谅!!!
11 楼 vb2005xu 2009-11-10  
新手帖代码全部删除,请见谅!!!
10 楼 vb2005xu 2009-11-10  
新手帖代码全部删除,请见谅!!!
9 楼 vb2005xu 2009-11-10  
新手帖代码全部删除,请见谅!!!
8 楼 vb2005xu 2009-11-09  
例子在附件中,已整理好xu.ui包,正在细化类的封装...

xu.dom 也实现了个ondomready方法.. 明天发出来..
7 楼 dugujiujian 2009-11-09  
有没有实际例子?
6 楼 vb2005xu 2009-11-09  
新手帖代码全部删除,请见谅!!!
5 楼 vb2005xu 2009-11-09  
新手帖代码全部删除,请见谅!!!
4 楼 vb2005xu 2009-11-09  
新手帖代码全部删除,请见谅!!!
3 楼 vb2005xu 2009-11-09  
新手帖代码全部删除,请见谅!!!
2 楼 vb2005xu 2009-11-09  
新手帖代码全部删除,请见谅!!!
1 楼 vb2005xu 2009-11-09  
新手帖代码全部删除,请见谅!!!

相关推荐

    u-boot的board_init_f和board_init_r阶段执行任务的对比

    u-boot 的 board_init_f 和 board_init_r 阶段执行任务的对比 u-boot 是一个开放源代码的引导加载程序,广泛应用于嵌入式系统和嵌入式设备中。它提供了一个灵活的引导机制,能够适应各种不同的硬件平台和操作系统。...

    整理一些代码__xu_init.js 作为自己项目开发时使用

    标题中的“xu_init.js”很可能是一个初始化脚本文件,用于在项目启动时进行必要的配置和设置。在JavaScript开发中,这样的初始化脚本通常包含了应用的全局变量定义、DOM加载事件处理、第三方库的引入、以及其他核心...

    init_array教程

    在Linux和类Unix系统中,`init_array`是ELF(Executable and Linkable Format)文件类型的一部分,它是一个特殊的段,用于存放程序启动时需要执行的一系列初始化函数指针。这个教程将深入探讨`init_array`的概念、...

    js_page.rar_js aim_page_js Page_Init_js 类似page_page.js_pagejs

    在给定的“js_page.rar”压缩包中,我们看到一系列与JavaScript相关的文件,特别是“js_aim_page.js”,“js_page_init.js”,以及“类似page_page.js”和“pagejs”。这些文件名暗示了它们可能包含用于创建交互式...

    单片机编程中关于code和no-init的用法

    ### 单片机编程中关于code和no-init的用法 #### CODE关键字解析与应用 在单片机的C语言编程过程中,`code`关键字扮演着重要的角色,尤其是在KEIL C51这样的编译环境中。它被用来指定某些变量或者数组应该被放置在...

    Python库 | mine_init-0.1.14-py3-none-any.whl

    "Python库 | mine_init-0.1.14-py3-none-any.whl" 这个文件是一个Python软件包,遵循Python的wheel格式,用于简化安装过程。在Python的生态系统中,wheel是一种预编译的二进制包格式,使得开发者无需通过源代码编译...

    PyPI 官网下载 | ml_init-0.4.0-py3-none-any.whl

    **PyPI 官网下载 | ml_init-0.4.0-py3-none-any.whl** PyPI(Python Package Index)是Python社区的官方软件仓库,它为开发者提供了一个平台来发布、分享和安装Python软件包。PyPI上的资源如"ml_init-0.4.0-py3-...

    解决Pytorch在Pycharm没有代码提示的文件__init__.pyi(2019.4.21)

    解决Pytorch在Pycharm中没有代码提示的问题。首先把Pycharm升级到2019.1.1,然后把Pytorch升级到1.0.1.post2,然后把下载的__init__.pyi替换掉site-packages/torch/中的__init__.pyi就行。

    解决Pytorch在Pycharm没有代码提示的文件__init__.pyi(4月21日更新版)

    解决Pytorch在Pycharm中没有代码提示的问题。首先把Pycharm升级到2019.1.1,然后把Pytorch升级到1.0.1.post2,然后把下载的__init__.pyi替换掉site-packages/torch/中的__init__.pyi就行。

    eetop.cn_rtos.zip_Help!___gh_lock_init_threadx_threadx linux_thr

    threadx os , source code to help you understand the rtos deeply

    nrf52832-nimble 代码分析流程图.pdf

    《nrf52832-nimble 代码分析流程图详解》 nrf52832-nimble是一个基于nRF52832芯片实现的蓝牙协议栈开源项目,其代码流程图深入剖析了蓝牙通信的核心过程,包括广播、扫描、连接、配对以及各层次的数据交互。本文将...

    Python包,__init__.py功能与用法分析

    本文实例讲述了Python包,__init__.py功能与用法。分享给大家供大家参考,具体如下: 包: 为了组织好模块,将多个模块组合为一个包,所以包用于存放python模块 包通常是一个文件夹,当文件夹当作包使用时,文件夹...

    RF_Init.rar_rf TypeA_rf_in_rf_init_rf_init usb_防冲突

    对于初学者,理解RF_TypeA的初始化和防冲突策略,可以借助"RF_Init.C"源代码进行学习,分析其中的逻辑和算法,通过模拟和实操加深理解。 综上所述,"RF_Init.rar_rf TypeA_rf_in_rf_init_rf_init usb_防冲突"这个...

    PLL_init.rar_PLL_PLL_In_freescale spi 代码_freescale s12_pll_init

    标题"PLL_init.rar_PLL_PLL_In_freescale spi 代码_freescale_s12_pll_init"暗示了这是一个关于Freescale S12单片机的PLL初始化代码,可能包括SPI(Serial Peripheral Interface)的相关实现。SPI是一种常见的串行...

    前端开源库-init-skeleton

    【前端开源库-init-skeleton】是一个专为前端开发者设计的开源工具,它的核心目标是提供一个基础的项目模板,帮助开发者快速启动新的前端应用。这个工具被称为“骨架”(skeleton),因为它为新项目提供了基本的框架...

    PyPI 官网下载 | mine_init-0.1.14-py3-none-any.whl

    资源来自pypi官网。 资源全名:mine_init-0.1.14-py3-none-any.whl

    VPC3_DPV1源代码,Profibus-DP

    VPC3_DPV1源代码是针对Profibus-DP通信协议的一个开发项目,这涉及到工业自动化领域的网络技术。Profibus-DP(Process Fieldbus - Distributed Periphery)是一种高速、可靠的现场总线标准,广泛应用于过程控制和...

Global site tag (gtag.js) - Google Analytics